Отменить git mv (переименовать) - PullRequest
113 голосов
/ 04 февраля 2011

Как правильно отменить переименование в git, например:

git mv file1 file2

Ответы [ 8 ]

188 голосов
/ 04 февраля 2011

не дерзкий ответ:

git mv file2 file1
34 голосов
/ 28 февраля 2013

Если вы не сделали никаких других изменений (которые хотите сохранить) с момента последнего коммита, вы можете сделать

git reset --hard
8 голосов
/ 22 апреля 2014

В моем случае я переместил всю папку, потом понял, что не должен был.

Мне очень понравился ответ @Dave Konopka, но у меня не было большого успеха при таком подходе (может быть, моя версия GIT (1.8.4)? Мои файлы все еще показывались как удаленные. У меня были другие изменения в стекечто я не хотел потерять (к сожалению).

Мне это удалось:

git reset moved_folder
git checkout original_folder
8 голосов
/ 05 февраля 2011

Это зависит от того, чего вы хотите достичь. Если вы хотите, чтобы он выглядел так, как если бы файл никогда не перемещался, вы можете сбросить (или перебазировать) обратно до перемещения. Если вас не волнует история, просто переместите ее назад.

6 голосов
/ 13 октября 2016
git reset HEAD file2

сделал трюк для меня

6 голосов
/ 23 марта 2012

Если вы случайно переименовали большое количество файлов и хотите вернуться туда, откуда начали, удалите все переименованные файлы, которые отображаются как adds при вызове git status.

Один разВы удаляете все измененные файлы, которые вы можете запустить git checkout -- *, чтобы вернуть исходные имена файлов локально.

2 голосов
/ 01 февраля 2018
git reset HEAD file2
git checkout -- file1
rm file2

Первая команда unstages file2, но оставляет ее копию. Вторая команда восстанавливает исходный файл, а третья удаляет новый файл.

0 голосов
/ 13 апреля 2018

Уловка, которую я использовал, заключалась в том, чтобы сделать git stash, чтобы отменить все мои изменения (включая восстановление mv'd-файлов), а затем удалил stash с помощью git stash drop.

...