在 git 中撤消重命名的正确方法是什么,例如:
git mv file1 file2
如果自上次提交以来您没有进行任何其他更改(您想保留),您可以这样做
git reset --hard
git reset HEAD file2
为我做了伎俩
就我而言,我移动了整个文件夹,然后意识到我不应该这样做。
我真的很喜欢@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
第一个命令取消暂存 file2,但保留它的副本。第二个命令恢复原始文件,第三个命令删除新文件。
我使用的技巧是执行 git stash 来撤消我的所有更改(包括恢复 mv'd 文件),然后使用 git stash drop 删除存储。
不那么可怕的是进入 repo 的顶层并执行以下操作:
git 重置
git checkout 。