在使用 GitHub 等客户端时,有时 Git 无法正确识别在资源管理器中(或 mv 命令)进行的重命名操作,会将其识别为文件的删除和新建,进而无法追踪该文件的修改历史。
If you rename and modify a file in the same commit, you will loose its history.
有的 git 工具(如 gitk)可以识别相似的文件并作出判断重命名的操作。但原始版本的 git 并没有这样的逻辑。因此理论上来说,在更改文件内容与执行重命名不应放在同一个 Commit 中。
但有时两次 Commit 之后,重命名也未必能够被正确识别。此时应该使用以下代码进行重命名操作:
1 |
|
事实上,mv
和 git mv
之间的唯一区别是后者还会将文件添加到索引中。
参考链接