代码之家  ›  专栏  ›  技术社区  ›  Vojtech Kane

Git重命名是否包括在提交中?

git
  •  1
  • Vojtech Kane  · 技术社区  · 6 年前

    我和Git玩了一段时间,但是我没有找到一个关于Renames技术细节的好解释。

    我一直认为重命名是在提交中以某种方式标记的,这样可以节省空间,并且可以在重命名之前跟踪文件的历史记录。我很惊讶地发现 --find-renames 包含在 git log git show ,但不在 git add 或类似的,所以 我想知道,这是否真的只是一种表示提交更改的方法,或者是否有一些关于在Git中重命名文件的特殊之处 .

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

    根据第一个问题的答案: 在搜索JSON的历史记录时,是否可以通过强制将转换标记为重命名或通过某种方式指示找到yaml? GIT日志 显示它(我没有成功 git log --follow -M0 ) ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   sschuberth    6 年前

    Git tracks contents, not files ,并根据内容自动确定相似性。如果文件是合理相似的,那么它们会被重新命名(如果原始文件被删除)或以其他方式复制。这就是说,您不能强制Git将任意不相似/不同的文件作为重命名。