你可以在工作目录中的不同文件上应用相同的提交吗?

时间:2015-11-25 07:22:31

标签: git github version-control

例如,让我说我有两个文件,A和B.我创建了B作为A的副本,但我希望它们非常相似 - 我只想在B中有几行不同。是否有在Git中以任何方式同步这些更改的方法,或者更有效的方法来完成此任务?

3 个答案:

答案 0 :(得分:2)

您有以下选择:

  1. 使用apply-patch-to-file。您可以使用以下方式生成补丁:

    git format-patch HEAD^
    
  2. 然后使用:

    申请
    apply-patch-to-file -i ~/patches/0001-my-test-commit.patch
    

    系统将提示您,并询问应该应用补丁的文件。

    1. 直接使用patch命令,通过创建差异:

      git diff HEAD^ -- hello.test > ~/patch_file
      
    2. 然后将diff应用于另一个文件:

      patch -p1 another_path/subdir/different_file.test ~/patch_file
      

答案 1 :(得分:0)

您可以将差异更改存储在文件中,并使用此补丁文件单独修补A和B.

答案 2 :(得分:0)

如果你能生成这种差异,那么你可以:

  • 版本A
  • 根本没有版本B(并实际将其添加到.gitignore
  • 添加一个涂抹脚本,在阅读内容git checkout生成 B

这称为content filter driver,使用.gitattributes declaration

filter

(图片来自" Customizing Git - Git Attributes",来自" Pro Git book")