在git中组合两个文件的提交历史记录

时间:2013-05-05 06:13:10

标签: git

我在我的dev目录中使用git:

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

这是两个地方都有提交的文件。我首先在root用户的mobile.html上工作,然后将其移动到/ sub-folder,但它的提交从未跟进过。我继续努力并做出新的承诺。

所以现在我基本上有:

  • /mobile.html - 提交a,提交b
  • /sub-folder/mobile.html - commit c,commit d

是否有加入这两个文件的提交历史记录?

2 个答案:

答案 0 :(得分:3)

我认为你在这里看到的是你没有意识到Git不跟踪单个文件的历史(!)。在Git模型中,仅跟踪 content ,并且它在给定存储库快照中存在的所有文件(提交代表的内容)中的分布是无关紧要的。因此,不会以任何特定方式跟踪重命名,git mv命令只是git rm --cached <filename> && mv <filename> <othername> && git add <othername>的便利帮助。

为了弥补文件更改历史的感知不连续性,Git在其历史遍历命令中有特殊的旋钮,可能用于告诉Git它应该如何努力检测人类将其视为文件重命名的内容。特别是,请查看--follow命令的--find-renames--find-copiesgit log命令行选项。

答案 1 :(得分:0)

如果您移动文件并提交而不修改它们,git就能知道这是一个移动而不是删除+新文件。