Итак, я нахожусь в ветке, назовем ее feature/PRO-10
, и я хочу переключиться на другую ветку, чтобы быстро проверить состояние фрагмента кода. Я делаю git stash
, чтобы сохранить свои изменения, а затем git checkout bugfix/PRO-13
, чтобы перейти в ветку, код которой я хочу просмотреть. Я заканчиваю то, что хочу сделать в этой ветке (без каких-либо изменений), и делаю git checkout feature/PRO-10
, чтобы вернуться в ветку, над которой я работал. Я собираюсь сделать git stash pop
, но подождите! Есть огромное количество измененных и неотслеживаемых файлов, а также других изменений.
Как они появились? Я никогда не делал никаких слияний. Возможно, я сделал git pull
, чтобы быть в курсе последних событий с bugfix/PRO-13
, но я не понимаю, почему это привело бы к таким изменениям, которые следуют за мной в моей исходной ветке.
Хуже всего то, что иногда я делаю git stash pop
перед тем, как делать git status
, что означает, что я, вероятно, смешаю свои первоначальные изменения со всей этой другой гамфой, которая, казалось бы, возникла из ниоткуда.
Откуда берутся эти изменения и безопасно ли от них избавиться?
1 ответ
Когда вы git checkout
, git пытается удалить то, что не существует в целевой ветке. Если у вас запущен антивирусный сканер, он оставит их позади или предложит вам. Если вы уверены, что у вас все спрятано или зафиксировано, вы можете git reset --hard
избавиться от этих брошенных файлов. Однако будьте осторожны, поскольку здесь конкретно говорится «отменить все локальные изменения без предупреждения», поэтому убедитесь, что это действительно то, что вы хотели сделать.
Похожие вопросы
Новые вопросы
git
Git — это распределенная система контроля версий с открытым исходным кодом (DVCS). Используйте этот тег для вопросов об использовании Git и рабочих процессах. Не используйте этот тег для общих вопросов по программированию, связанных с репозиторием Git. Не используйте этот тег для вопросов GitHub/GitHub Actions, не связанных с использованием git; вместо этого используйте [github] или [github-actions]. Не используйте тег [github] для проблем, связанных с Git, только потому, что репозиторий размещен на GitHub.
git stash
, что показываетgit status
?nothing to commit (working directory clean)
. Изменения, которые волшебным образом всплыли, - это изменения, совершенно не связанные ни с чем, что я спрятал.apply
илиpop
свой тайник, пока вы были в другой веткеbugfix/PRO-13
?bugfix/PRO-13
). Как будто я переключился на эту ветку, снял все эти изменения, переключился обратно на свою ветку разработки, и внесенные мной изменения пришли со мной.