合并两个文件在git中的提交历史

3

我在我的git开发目录中遇到了这种情况:

/mobile.html
/sub-folder/mobile.html

这是同一个文件,但提交记录分别在两个位置。我先在根目录下的mobile.html上进行了修改,然后将其移动到/sub-folder,但它的提交记录并没有跟随移动。我继续对其进行修改,并进行了新的提交。
现在,我基本上有:
/mobile.html - 提交a,提交b /sub-folder/mobile.html - 提交c,提交d
有没有办法将这两个文件的提交历史合并在一起?
2个回答

3
我认为你所看到的是你不知道Git不跟踪单个文件的历史记录。在Git模型中,只有内容被跟踪,而它在给定存储库快照(提交所代表的内容)中存在的所有文件中的分布是无关紧要的。因此,重命名没有以任何特定方式被跟踪,而git mv命令只是一个方便的帮助程序,用于git rm --cached <filename> && mv <filename> <othername> && git add <othername>。
为了弥补文件更改历史记录的感知间断性,Git在其历史遍历命令中具有特殊的旋钮,可用于告诉Git应该尝试检测人类会感知为文件重命名的程度。特别是,请查看git log命令的--follow,--find-renames和--find-copies命令行选项。

0
如果您移动了文件并在未修改它们的情况下提交,Git 能够知道这是一次移动而不是删除和新建文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接