如何使 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
。
我使用 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
。