Единственный вопрос, который у меня возник с этим ответом, это то, что он оставил копии для file2 на диске.
user52472
9
В моем случае я переместил всю папку, потом понял, что не должен был.
Мне очень понравился ответ @Dave Konopka, но у меня не было большого успеха с таким подходом (возможно, моя версия GIT (1.8.4)? Мои файлы все еще показывались как удаленные. У меня были другие изменения в стеке, которые я не хотел делать проиграть (к сожалению).
Это зависит от того, чего вы хотите достичь. Если вы хотите, чтобы он выглядел так, как если бы файл никогда не перемещался, вы можете сбросить (или перебазировать) обратно до перемещения. Если вас не волнует история, просто переместите ее назад.
Первый работает нормально, пока вы не выдвинули свой коммит или кто-то не вытянул вас.
CanSpice
7
Если вы случайно переименовали большое количество файлов и хотите вернуться туда, откуда начали, удалите все переименованные файлы, которые отображаются как addsподgit status вызове.
После того, как вы удалите все измененные файлы, вы можете запустить, git checkout -- *чтобы получить исходные имена файлов локально.
Хитрость, которую я использовал, заключалась в том, чтобы сделать git stash, чтобы отменить все мои изменения (включая восстановление mv'd-файлов), а затем удалил stash с помощью git stash drop.
git mv file2 file1
Ответы:
Не дерзкий ответ:
Проверьте документацию git mv
источник
git checkout .
не работает, даже с-f
опцией?git checkout -- .
.fatal: source directory is empty,
толькоgit reset --hard
сделал работу.Если вы не сделали никаких других изменений (которые хотите сохранить) с момента последнего коммита, вы можете сделать
источник
git reset --hard
. Просто сдвинуть его назад кажется мне более безопасным вариантом.сделал трюк для меня
источник
В моем случае я переместил всю папку, потом понял, что не должен был.
Мне очень понравился ответ @Dave Konopka, но у меня не было большого успеха с таким подходом (возможно, моя версия GIT (1.8.4)? Мои файлы все еще показывались как удаленные. У меня были другие изменения в стеке, которые я не хотел делать проиграть (к сожалению).
Я имел успех, делая это:
источник
Это зависит от того, чего вы хотите достичь. Если вы хотите, чтобы он выглядел так, как если бы файл никогда не перемещался, вы можете сбросить (или перебазировать) обратно до перемещения. Если вас не волнует история, просто переместите ее назад.
источник
Если вы случайно переименовали большое количество файлов и хотите вернуться туда, откуда начали, удалите все переименованные файлы, которые отображаются как
adds
подgit status
вызове.После того, как вы удалите все измененные файлы, вы можете запустить,
git checkout -- *
чтобы получить исходные имена файлов локально.источник
Первая команда unstages file2, но оставляет ее копию. Вторая команда восстанавливает исходный файл, а третья удаляет новый файл.
источник
Хитрость, которую я использовал, заключалась в том, чтобы сделать git stash, чтобы отменить все мои изменения (включая восстановление mv'd-файлов), а затем удалил stash с помощью git stash drop.
источник
Менее страшно перейти на верхний уровень репо и сделать:
git reset
git checkout.
источник