git checkout не удалит помеченные файлы, которые никогда не были зафиксированы - PullRequest
2 голосов
/ 21 мая 2019

Я изучаю git и был удивлен тем фактом, что промежуточные файлы, созданные во время нахождения в ветке темы, не удаляются при извлечении на мастер.

Например:

git checkout -b topic
nano newfile.txt
git add newfile.txt
git checkout master // newfile.txt is still in the working directory, even though it was created in topic branch

Мне хорошо известна команда git clean, просто я ожидал, что все файлы, которые никогда не были зафиксированы, будут удалены, если вы извлечете их в другую ветвь.

Я что-то здесь упустил или это ожидаемое поведениеиз мерзавца?

1 Ответ

3 голосов
/ 21 мая 2019

Ожидаемое поведение. Если бы мне пришлось описать это (и любой желающий может оспорить мое объяснение), я бы сказал, что, поскольку ваш newfile.txt еще не зарегистрирован, и ничто в ветви master еще не связано с newfile.txt, git не следует удалять файлы, за которые он пока не отвечает. В обычных обстоятельствах мы не хотим, чтобы git ползал и модифицировал файлы, которые еще не были добавлены в репо. С другой стороны, если файл был добавлен в репозиторий, будет справедливо, если git удалит изменения.

Тем не менее, как вы уже предложили, эти типы файлов можно удалить в каталоге с помощью команд git clean.

...