git:重命名文件并更改文件

时间:2016-02-01 11:21:23

标签: git rename

我有一个关于在git中重命名文件的问题。

我想重命名一个文件。所以我重命名它。据我所知,如果我不改变文件的内容,git会检测到移动,因为文件的散列是相同的。

我使用C ++,所以在重命名之后我必须更改文件中的包含路径(我已经重命名),所以问题是git没有检测到移动,而是认为是一个文件被删除,另一个被添加。我正在寻找一个git检测到这种变化的解决方案。

有人有一个好的策略吗?

提前致谢
通卡

2 个答案:

答案 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可能会提前识别重命名的文件。