撤消git mv(重命名)

在git中撤消重命名的正确方法是什么,例如:
git mv file1 file2
    
已邀请:
非厚脸皮的回答:
git mv file2 file1
    
如果自上次提交后您没有进行任何其他更改(您希望保留),则可以执行此操作
git reset --hard
    
这取决于你想要完成什么。如果您希望它看起来好像文件从未被移动过,那么您可以在移动之前重置(或重新绑定)。如果你不关心历史,那就把它移回去吧。     
在我的情况下,我移动了整个文件夹,然后意识到我不应该。 我真的很喜欢@Dave Konopka的答案,但是我没有用这种方法取得太大的成功(也许是我的GIT版本(1.8.4)?我的文件仍显示为已删除。我在堆栈上有其他更改,我不想要失败(不幸的是)。 我确实做到了这一点:
git reset moved_folder
git checkout original_folder
    
如果您不小心重命名了大量文件并希望返回到您开始的位置,请删除在
git status
调用下显示为
adds
的所有重命名文件。 删除所有已更改的文件后,您可以运行
git checkout -- *
以在本地恢复原始文件名。     
git reset HEAD file2
为我做了诀窍     
git reset HEAD file2
git checkout -- file1
rm file2
第一个命令unstages file2但是留下了它的副本。第二个命令恢复原始文件,第三个命令删除新文件。     
我使用的技巧是做一个git stash来撤消我的所有更改(包括恢复mv'd文件),然后用git stash drop删除存储。     

要回复问题请先登录注册