Я только что сделал
git commit -m "blah"
Затем я добавил несколько файлов, как мне откатиться и удалить то, что есть в моих текущих файлах, которые еще не были добавлены / зафиксированы?
Я только что сделал
git commit -m "blah"
Затем я добавил несколько файлов, как мне откатиться и удалить то, что есть в моих текущих файлах, которые еще не были добавлены / зафиксированы?
Ответы:
Caveat Emptor - Впереди разрушительные команды.
Смягчение - git reflog может спасти вас, если вам это нужно.
1) ОТМЕНИТЬ изменения локального файла и СОХРАНИТЬ свою последнюю фиксацию
git reset --hard
2) ОТМЕНИТЬ изменения локального файла и УДАЛИТЬ последнюю фиксацию
git reset --hard HEAD^
3) СОХРАНИТЕ изменения локального файла и УДАЛИТЕ последнюю фиксацию
git reset --soft HEAD^
Если вы хотите удалить недавно добавленное содержимое и файлы, которые уже поставлены (добавлены в индекс), вы используете:
git reset --hard
Если вы хотите удалить также и свою последнюю фиксацию (с сообщением «бла»), то лучше использовать:
git reset --hard HEAD^
Чтобы удалить неотслеживаемые файлы (чтобы новые файлы еще не добавлены в индекс) и папки, используйте:
git clean --force -d
git reset --hard вернет рабочий каталог к последней фиксации и удалит новые / измененные файлы.
Вы можете отменить фиксацию, используя git revert HEAD^для возврата к предпоследней фиксации. Вы также можете указать фиксацию для возврата, используя идентификатор вместо HEAD ^
Если вы хотите просто отменить последнюю фиксацию, используйте это:
git reset HEAD~
работать как шарм для меня.
Простой надежный способ отменить изменения локального файла с момента последней фиксации - поместить их в новую ветку:
git branch changes
git checkout changes
git add .
git commit
Это оставляет изменения в новой ветке. Вернитесь к исходной ветке, чтобы найти ее обратно к последней фиксации:
git checkout master
Новая ветка - хорошее место, где можно попрактиковаться в различных способах отмены изменений без риска испортить исходную ветку.