如何使 git 重命名已提交的已删除和添加的文件?

How to mage git rename already commited deleted and added file?

我使用 gerrit。 我首先创建了一个 FooService -> 到 BarService 的副本,更改并提交了它。 后来我删除了 FooService,提交了它。 FooService 在 gerrit 中可见为已删除,BarService 为已添加。 在我合并我的更改之前,如何修复它,使其在重命名的 FooService->BarService 中可见?

可能是您对原始文件进行了太多更改,因此 Gerrit (Git) 无法识别它。您可以将更改分为两次提交(Gerrit 中的更改):首先,重命名文件,然后进行更改。

你应该为此使用适当的工具。

git mv 命令非常适合这样做。只需从命令行使用它:

git mv FooService BarService

它肯定会阻止您 运行 遇到像您这样的问题。

恢复

要恢复已删除的文件(显然,此更改必须被 GIT 看到),只需使用:

git checkout HEAD FooService

这将恢复已删除的文件(更准确地说,它将文件从作为参数传递的修订版本更改为状态,在本例中为 HEAD)。使用 BarService - 只需从系统文件中删除它或使用 git rm 命令。

恢复后如前所述使用 git mv