2017-02-15 28 views
-2

У меня есть 3 ветви в проекте, которые должны были быть дискретно отделены от начала, но, увы, я все еще изучаю git, и они путались друг с другом примерно на полпути моей работы ,Разнообразные изменения сортировки между ветвями git, меняющимися ветвями

В настоящее время я могу переключаться между master и моими филиалами dev-1. При этом, я получаю отображение

M this/is/a/file.path M this/is/also/a/file.path M this/is/a/file.path

и я не могу переключить две моих dev-2 ветви без совершения или припрятать изменения, которые я не думаю, что я хочу сделать еще.

Прежде всего я хотел бы знать, что означает на самом деле выход. Я нашел примеры, которые говорят, что эти файлы были изменены, что верно, но почему мне не нужно их хранить или комментировать до переключения между master и dev-1?

Кроме того, я хочу, чтобы мои master отделения, чтобы быть абсолютно чистыми и только изменения в моих dev-1 и dev-2 ветвях, но я не уверен, что лучший способ достижения этой цели, так как мои master и dev-1 ветвей кажутся обмениваться информацией ,

+0

См. Http://stackoverflow.com/questions/22053757/git-checkout-another-branch-when-there-are-uncommitted-changes-on-the-current – torek

+0

Вы задаете три вопроса. Попробуйте разбить их на три отдельных вопроса SO. –

ответ

0

Для отображения, которое вы получили, левая колонка M (2cd и 3-я запись) означает, что изменения файла добавлены в промежуточную область (изменения должны быть зафиксированы), правая колонка M (1-я запись) означает, что изменения имеют не поставлены (изменения не поставлены для фиксации).

Если вы хотите переключиться на другую ветку, пока есть изменения, которые не фиксируются или не сжимаются, git будет защищать изменения и останавливать переход на другую ветку. Если вы действительно не измените, вы можете принудительно переключиться на другую ветку на git checkout -f branchname. Это приведет к тому, что вы не сможете найти эти изменения в истории, так как вы их не совершили.

Полностью чистая ветка (без фиксации на ней) не существует. Если вам не нужны последние изменения, внесенные вами в основную ветку, вы можете сбросить ее на git reset --hard HEAD~n, номер n - это последний счет, который вы хотите удалить.