我有一个回购协议,其中一个文件被分成了多个其他文件。
例如,假设我们有abcd.txt
:
a
b
c
d
它被分成a.txt
:
a
b.txt
:
b
等
但是,当我git blame a.txt
表示我写了整个文件时,实际上abcd.txt
的作者应该被列为作者。这也摆脱了我的GitHub审核页面,因为当我实际上只分割了一个文件时,好像删除了一个文件并添加了4个文件,这将使审核变得更加简单。
我现在如何告诉git我已将此文件拆分为多个部分?我应该如何分割?
答案 0 :(得分:0)
这是git
中的一项基本设计决定的结果。 Git提交不代表差异。 git commit代表您的仓库的快照状态(即,它不跟踪重命名,文件移动,文件拆分,文件联接等)。
为了准确地“跟踪”更改在文件之间移动时,您需要使用不同的提交差异算法,具体取决于git工具链。不幸的是,今天可用的大多数工具都为此而生。
通常认为,最好的做法是在添加a.txt
的提交(如果在同一提交中发生abcd.txt
删除的提交,则查看同一提交)之前的提交。查看文件内容的来源。
一种策略是在提交的扩展注释中写一个解释性注释,以便用户可以看到发生了什么,例如git -m "Splitting up abcd.txt to a.txt, b.txt, c.txt, d.txt"
。我还建议避免将文件重命名,拆分和联接操作与其他更改混合使用:
abcd.txt
进行提交。abcd.txt
拆分为单独的文件(a.txt
,b.txt
等),无需进行其他任何更改。a.txt
,b.txt
等。