我有一个关于在git中重命名文件的问题。
我想重命名一个文件。所以我重命名它。据我所知,如果我不改变文件的内容,git会检测到移动,因为文件的散列是相同的。
我使用C ++,所以在重命名之后我必须更改文件中的包含路径(我已经重命名),所以问题是git没有检测到移动,而是认为是一个文件被删除,另一个被添加。我正在寻找一个git检测到这种变化的解决方案。
有人有一个好的策略吗?
提前致谢
通卡
答案 0 :(得分:1)
如果要进行两次不同的提交,一次是移动,另一次是文件更改,则应使用git mv
并提交。然后更改您的包含路径并使用内部文件更改执行另一次提交。
答案 1 :(得分:1)
我使用Java,Java-Classes一样,如果你重命名/移动它(diff --git a/Project/src/de/package/app/DebugInfo.java b/Project/src/de/package/app/development/DebugInfo.java
similarity index 88%
rename from Project/src/de/package/app/DebugInfo.java
rename to Project/src/de/package/app/development/DebugInfo.java
index 46494da..f90778e 100644
声明,Class-Name),内容会改变。
没有做一些特别的事情,git识别了重命名,我可以看到该文件的完整历史记录。
在提交中,我移动了文件,我可以看到这一点(通过Eclipse中的eGit History):
# Original CSV
$csv = import-csv c:\temp.csv
# 2nd CSV
$csv2 = import-csv c:\temp2.csv
# As simple as:
$csv += $csv2
您也可以adjust the Similarity Index,因此git可能会提前识别重命名的文件。