Как правильно отменить переименование в git, например:
git mv file1 file2
Как правильно отменить переименование в git, например:
git mv file1 file2
Ненавязчивый ответ:
git mv file2 file1
Автоматически обновляет индекс как для старых, так и для новых путей.
Проверьте документацию по git mv
git checkout .
не работает, даже с опцией -f
?
- person ryenus; 19.05.2012
git checkout -- .
.
- person Joseph238; 06.06.2017
fatal: source directory is empty,
, только git reset --hard
выполнил задание.
- person mac13k; 20.06.2020
Если вы не вносили никаких других изменений (которые вы хотите сохранить) с момента последней фиксации, вы можете сделать
git reset --hard
git reset --hard
. Просто переместить его назад кажется мне более безопасным вариантом.
- person Sergey Orshanskiy; 12.01.2015
git reset HEAD file2
сделал трюк для меня
В моем случае я переместил целую папку, а потом понял, что не должен был этого делать.
Мне очень понравился ответ @Dave Konopka, но у меня не было большого успеха с этим подходом (может быть, моя версия GIT (1.8.4)? Мои файлы по-прежнему отображались как удаленные. У меня были другие изменения в стеке, которые я не хотел потерять (к сожалению).
Мне удалось сделать это:
git reset moved_folder
git checkout original_folder
Это зависит от того, чего вы хотите достичь. Если вы хотите, чтобы это выглядело так, как будто файл никогда не перемещался, вы можете сбросить (или перебазировать) обратно до перемещения. Если вас не волнует история, просто переместите ее назад.
Если вы случайно переименовали большое количество файлов и хотите вернуться к тому, с чего начали, удалите все переименованные файлы, которые отображаются как adds
под вызовом git status
.
Как только вы удалите все измененные файлы, вы можете запустить git checkout -- *
, чтобы локально вернуть исходные имена файлов.
git reset HEAD file2
git checkout -- file1
rm file2
Первая команда удаляет файл2, но оставляет его копию. Вторая команда восстанавливает исходный файл, а третья удаляет новый файл.
Трюк, который я использовал, заключался в том, чтобы сделать git stash, чтобы отменить все мои изменения (включая восстановление файлов mv'd), а затем удалить git stash drop.
Менее страшно перейти на верхний уровень репо и сделать:
git reset
git checkout .
git mv file2 file1
- person CanSpice   schedule 04.02.2011