我已经和Git玩了一段时间了,但是我找不到关于重命名技术细节的很好的解释。
我一直认为在提交中以某种方式标记了重命名,这样可以节省空间,并且您可以在重命名之前跟踪文件的历史记录。我很惊讶地发现--find-renames
和git log
中包含了选项git show
,但git add
或类似物中却没有,所以我想知道是否是
我正面临一个相关的问题。我想将YAML文件转换为JSON文件,其中包括更改内容(更具体地说,更改原始文件的每一行)以及重命名(更改扩展名)。另一方面,我认为它确实是重命名。在搜索JSON的历史记录时,您还应该找到YAML。
根据第一个问题的答案:通过强制将转换标记为重命名或通过指示git log
进行显示,可以在搜索JSON历史记录时找到YAML。 (我在git log --follow -M0
上失败了)?
答案 0 :(得分:1)
Git tracks contents, not files,并根据内容自动确定相似性。如果文件合理相似,则以重命名(如果已删除原始文件)的方式跟踪它们,否则以副本的形式进行跟踪。也就是说,您不能强迫Git将任意不相同/不同的文件当作重命名。