提交中是否包含Git重命名?

时间:2018-09-25 15:24:58

标签: git

我已经和Git玩了一段时间了,但是我找不到关于重命名技术细节的很好的解释。

我一直认为在提交中以某种方式标记了重命名,这样可以节省空间,并且您可以在重命名之前跟踪文件的历史记录。我很惊讶地发现--find-renamesgit log中包含了选项git show,但git add或类似物中却没有,所以我想知道是否是

。实际上,这只是呈现提交更改或Git中重命名文件是否有特殊之处的一种方法。

我正面临一个相关的问题。我想将YAML文件转换为JSON文件,其中包括更改内容(更具体地说,更改原始文件的每一行)以及重命名(更改扩展名)。另一方面,我认为它确实是重命名。在搜索JSON的历史记录时,您还应该找到YAML。

根据第一个问题的答案:通过强制将转换标记为重命名或通过指示git log进行显示,可以在搜索JSON历史记录时找到YAML。 (我在git log --follow -M0上失败了)

1 个答案:

答案 0 :(得分:1)

Git tracks contents, not files,并根据内容自动确定相似性。如果文件合理相似,则以重命名(如果已删除原始文件)的方式跟踪它们,否则以副本的形式进行跟踪。也就是说,您不能强迫Git将任意不相同/不同的文件当作重命名。