告诉git许多文件来自一个文件

时间:2019-03-21 01:51:13

标签: git

我有一个回购协议,其中一个文件被分成了多个其他文件。

例如,假设我们有abcd.txt

a
b
c
d

它被分成a.txt

a

b.txt

b

但是,当我git blame a.txt表示我写了整个文件时,实际上abcd.txt的作者应该被列为作者。这也摆脱了我的GitHub审核页面,因为当我实际上只分割了一个文件时,好像删除了一个文件并添加了4个文件,这将使审核变得更加简单。

我现在如何告诉git我已将此文件拆分为多个部分?我应该如何分割?

1 个答案:

答案 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"。我还建议避免将文件重命名,拆分和联接操作与其他更改混合使用:

  1. 使用abcd.txt进行提交。
  2. 在同一目录中将abcd.txt拆分为单独的文件(a.txtb.txt等),无需进行其他任何更改。
  3. 提交
  4. 将单独的文件移至其最终目录
    • 这是为了避免在同一提交中将文件拆分与后续文件移动操作混合在一起
  5. 提交
    • 这是为了避免在同一提交中将文件移动与后续文件编辑操作混合在一起
  6. 正常编辑a.txtb.txt等。
  7. 提交