我在我的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 是否有加入这两个文件的提交历史记录?
答案 0 :(得分:3)
我认为你在这里看到的是你没有意识到Git不跟踪单个文件的历史(!)。在Git模型中,仅跟踪 content ,并且它在给定存储库快照中存在的所有文件(提交代表的内容)中的分布是无关紧要的。因此,不会以任何特定方式跟踪重命名,git mv
命令只是git rm --cached <filename> && mv <filename> <othername> && git add <othername>
的便利帮助。
为了弥补文件更改历史的感知不连续性,Git在其历史遍历命令中有特殊的旋钮,可能用于告诉Git它应该如何努力检测人类将其视为文件重命名的内容。特别是,请查看--follow
命令的--find-renames
,--find-copies
和git log
命令行选项。
答案 1 :(得分:0)
如果您移动文件并提交而不修改它们,git就能知道这是一个移动而不是删除+新文件。