Переключение между ветками Git не изменяет файлы папки кода - PullRequest
9 голосов
/ 02 марта 2012

Это продолжение до этого вопроса.

Я клонировал папку удаленного главного проекта с помощью команды git clone git@git.mytest.com:TEST. из корня Git я сделал команду cd Test, чтобы перейти в эту папку. Затем я создал ветку, используя git checkout -b myBranch. Теперь на git bash это показывает, что я в новой ветке. Я создал файл test.txt в папке Test, а затем переключил свою ветку на master. Я все еще вижу текстовый файл. Разве Git не должен показывать test.txt, поскольку он не является частью master. Нужно ли фиксировать свои изменения в ветке, если это должно произойти.

Сначала я подумал, что это могло произойти, потому что это не часть моего проекта .net (который у меня есть в master и branch). Но то же самое произошло, когда я попытался добавить файл в mybranch. Когда я переключаю свой мастер, я все еще вижу измененный значок для папок в системе тьфу.

Что мне не хватает? Спасибо за вашу помощь, поскольку я потратил много времени, пытаясь выяснить, Git сейчас. Каждый раз, когда я думаю, что у меня это есть, всегда что-то есть.

1 Ответ

16 голосов
/ 02 марта 2012

Нет, это не часть вашей master ветви, но она также не является частью myBranch. Это без отслеживания , потому что вы никогда не фиксировали файл. Запустив git status, вы увидите его в списке неотслеживаемым. Поскольку он никогда не ставился и не совершался, Git не (и не может) управлять своим существованием, поэтому он остается там независимо.

Кроме того, измененные файлы остаются между ветвями, если они могут. Else Git выдаст вам ошибку при переключении веток вокруг грязного рабочего дерева. Это, опять же, потому что Git не имеет внутренней копии этих изменений, они существуют только в вашей файловой системе, а не в Git, пока они не будут зафиксированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...