Как правильно отменить переименование в git, например:
git mv file1 file2
Как правильно отменить переименование в git, например:
git mv file1 file2
Ответы:
Не дерзкий ответ:
git mv file2 file1
Обновляет индекс для старых и новых путей автоматически.
Проверьте документацию git mv
git checkout .
не работает, даже с -f
опцией?
git checkout -- .
.
fatal: source directory is empty,
только git reset --hard
сделал работу.
Если вы не сделали никаких других изменений (которые хотите сохранить) с момента последнего коммита, вы можете сделать
git reset --hard
git reset --hard
. Просто сдвинуть его назад кажется мне более безопасным вариантом.
В моем случае я переместил всю папку, потом понял, что не должен был.
Мне очень понравился ответ @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
Первая команда unstages file2, но оставляет ее копию. Вторая команда восстанавливает исходный файл, а третья удаляет новый файл.
Хитрость, которую я использовал, заключалась в том, чтобы сделать git stash, чтобы отменить все мои изменения (включая восстановление mv'd-файлов), а затем удалил stash с помощью git stash drop.
git mv file2 file1