2011-02-04 104 views
92

什么是撤消git的重命名,是一个正确的方法:撤消git的MV(重命名)

git mv file1 file2 
+13

厚颜无耻的答案:`git mv file2 file1` – CanSpice 2011-02-04 20:50:55

+0

@ CanSpice:这是正确的答案;没有什么厚颜无耻的。 – 2011-02-04 20:52:01

+1

@Charles:那么,我已经提供它作为一个适当的非厚脸皮的答案。 :-) – CanSpice 2011-02-04 20:53:21

回答

148

非厚脸皮回答:

git mv file2 file1 
+4

假设file1和file2都在当前目录(。)中,那么为什么`git checkout .`不起作用,即使使用`-f`选项? – ryenus 2012-05-19 14:25:04

+5

似乎很少有东西像这样直观:) – ragerdl 2015-11-03 16:32:09

8

这取决于你想要完成的任务。如果您希望它看起来好像文件从未移动过,那么您可以在移动之前重置(或重新绑定)。如果你不关心历史,那就把它移回去。

6

如果您不小心重命名了大量文件并希望返回到开始位置,请删除在git status调用下显示为adds的所有重命名文件。

删除所有更改的文件后,您可以运行git checkout -- *以在本地取回原始文件名。

28

如果您还没有进行任何的改变(你想保持)自上一次提交,你可以做

git reset --hard 
8

就我而言,我感动的整个文件夹,然后意识到我不应该。我很喜欢@Dave Konopka的回答,但是我没有用这种方法取得很大的成功(也许是我的GIT版本(1.8.4)?我的文件仍然显示为已删除。我在堆栈上进行了其他更改, 。不想失去(不幸)

我确实有成功的这样做:

git reset moved_folder 
git checkout original_folder 
5
git reset HEAD file2 

的伎俩,我

0
git reset HEAD file2 
git checkout -- file1 
rm file2 

第一个命令会暂停file2但将其副本保留。第二个命令恢复原始文件,第三个命令删除新文件。