如何在序列中的所有提交上应用相同的转换而无需手动进行每个转换?

时间:2018-08-23 14:52:18

标签: git

假设我有以下Git场景,其中:

  • 1st上提交:我在lorem/text01.txt内创建带有一些随机文本的text01.txt
  • 2nd上提交:我在lorem/text02.txt内创建带有一些随机文本的text02.txt
  • 3rd上提交:我在lorem/text03.txt内创建带有一些随机文本的text03.txt
  • 4th上提交:我在lorem/text04.txt内创建带有一些随机文本的text04.txt

以此类推...(您已经知道了模式)

之后,请在1001th上说,您会注意到所有这些文件(text01.txt .... text1001.txt都应该在其中newfoldername/内的strong> lorem/ 不是

但问题是,您不想创建newfoldername/,将所有这些文件移动到新目录中,然后提交。

您希望 Git历史记录从一开始就很好 1st承诺要创建newfoldername/text01.txt,{{1} }致力于创建2nd,依此类推。

我的问题是,如何实现这一目标而不必分别重新设置(newfoldername/text02.txt每个提交序列?

1 个答案:

答案 0 :(得分:2)

git-filter-branch

  

让您通过重写中提到的分支来重写Git修订历史记录,在每个修订上应用自定义过滤器。这些过滤器可以修改每棵树(例如删除文件或对所有文件运行perl重写)或有关每次提交的信息。否则,所有信息(包括原始提交时间或合并信息)将被保留。