Подтвердить что ты не робот

Как сделать GIT игнорировать мои изменения

Хотя название похоже на предыдущие вопросы, я не смог найти решение для моего простого случая:

  • Я передал свою ветку "ABCD": git commit -a .....
  • Затем решил посетить предыдущую фиксацию так: git checkout 2387687326487
  • Здесь я сделал некоторые изменения, которые были предназначены только для тестирования, и я не хочу их хранить.
  • Я закончил, я хочу вернуться к моей последней фиксации (опять же: игнорируя изменения, которые я сделал для старой фиксации): команда git checkout 'ABCD' дает ошибку:

Ваши локальные изменения в следующие файлы будут перезаписаны с помощью checkout.... пожалуйста, скопируйте или запишите...

в то время как я не хочу совершать или хранить или что-то еще. Я просто хочу вернуться домой:), что мне делать, пожалуйста?

4b9b3361

Ответ 1

Если вы уверены, что не хотите сохранять свои изменения, выполните следующую строку:

git checkout -f 'ABCD'

Параметр '-f' обозначает силу.

Ответ 2

Используя только

git checkout .

отменит любые незафиксированные изменения в текущем каталоге (точка означает текущий каталог).

ИЗМЕНИТЬ в ответ на @GokulNK:

Если вы хотите сохранить эти изменения для будущего использования, у вас есть 2 варианта:

  • git stash: это сохранит эти изменения в стеке. Вы можете применить изменения к своей рабочей копии позже, используя git stash pop
  • git diff > changes.patch: Это сохранит эти изменения в файле changes.patch. Если вы хотите применить их к своей рабочей копии, вы можете сделать это: git apply changes.patch.

Ответ 3

Чтобы отменить локальные изменения и вернуться в состояние из фиксации, вы можете:

git reset --hard

Ответ 4

Помимо упомянутых решений вы можете сохранить изменения

git stash

Оформить свою ветку

git checkout 'ABCD'

И в конце концов, когда вы уверены, что вам ничего не нужно из спрятанных изменений, и дважды проверили с помощью gitk или gitg, выбросьте тайник:

git stash drop

Это мой предпочтительный способ, так как он безопаснее.