Почему папки остаются в моем локальном рабочем каталоге git после коммита и извлечения
533 просмотра
1 ответ
Я создал папку, содержащую файлы в моей локальной рабочей структуре git. Я создал новую ветку с git checkout -b и использовал git add. и git commit -m "..." чтобы добавить эти файлы в мою локальную ветку. Но когда я делаю git checkout master, созданная и сохраненная папка все еще там. Почему? Я думал, что git commit поместит папку и ее содержимое в мою локальную ветку, отключив ее, когда я проверю мастер.
Автор: Matt W Источник Размещён: 29.09.2019 10:10Ответы (1)
4 плюса
Если вы добавите ранее неотслеживаемые файлы в новую ветку, а затем извлечете другую ветку, которая в настоящее время не отслеживает эти файлы, она не удалит их из вашей рабочей копии.
Вот пример - допустим, я сейчас нахожусь в чистой ветке с именем old_branch
и извлекаю новую ветку с именем new_branch
:
git checkout -b new_branch
Затем я создаю новый файл с именем test.txt
в этой ветке и добавляю его в репозиторий:
touch test.txt # creates a new file named test.txt
git add test.txt
git commit -m "Added test.txt"
test.txt
Файл в настоящее время отслеживаются new_branch
отрасли. Однако, когда я переключаю ветки обратно на old_branch
:
git checkout old_branch
Поскольку test.txt
он не отслеживается old_branch
, он оставляет его в рабочем каталоге и не перезаписывает его. Это ожидаемое поведение. Если вы сделаете git status
это, вы заметите, что test.txt
файл в настоящее время не отслежен.
Для завершения, если вам нужно очистить вашу рабочую копию от всех неотслеживаемых файлов, вы можете сначала сделать:
git clean -n
Это будет список всех неотслеживаемых файлов, которые будут удалены. Если вы удовлетворены списком, вы можете удалить эти файлы с помощью:
git clean -f -d
Это деструктивная команда , тем более что она удаляет файлы, которые не отслеживаются текущей веткой. (Он не удалит их из веток, которые отслеживают эти файлы.)
Автор: Zachary Espiritu Размещён: 26.08.2017 10:49Вопросы из категории :
- git Как я могу отменить git reset --hard HEAD ~ 1?
- git Как настроить Git голый доступный по HTTP репозиторий на IIS
- git Как мне отменить неустановленные изменения в Git?
- git Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git?
- git Как клонировать все удаленные ветки в Git?
- git Частичные коммиты с Subversion
- git-commit Как изменить существующие сообщения без фиксации?
- git-commit Как мне отправить исправленный коммит в удаленный репозиторий Git?
- git-commit Как отменить 'git add' перед коммитом?
- git-commit Как я могу удалить коммит на GitHub?
- git-commit Удалить конфиденциальные файлы и их коммиты из истории Git
- git-commit Как мне отменить последние локальные коммиты в Git?
- git-checkout Как я могу сбросить или вернуть файл к определенной ревизии?
- git-checkout Найти и восстановить удаленный файл в репозитории Git
- git-checkout Извлечение одного файла из репозитория
- git-checkout Как вернуть все локальные изменения в проекте, управляемом Git, в предыдущее состояние?
- git-checkout git: переключить ветку и игнорировать любые изменения без фиксации
- git-checkout Как получить последнее имя тега в текущей ветке в Git?