这种情况:

  • 我们基于现有的开源git repo(例如source-repo)创建了一个“私有(private)” repo(例如our-repo)。
  • 我们一直在开发代码,并且大约有20个合并到我们的仓库中。因此,存储库从“State_Initial”移至“State_Current”。

  • 现在,出于业务原因,我们希望将所有开发工作移交给第三方。基于某些法律问题,唯一的选择是我们为他们提供所有更改的“单个”补丁文件。那是“State_Initial”和“State_Current”之间的压缩补丁。

    我环顾四周,发现
    git format-patch -X
    

    但是,它会生成“n”个.patch文件。

    有没有一种创建单个补丁文件的方法,这样,如果我们基于“source-repo”创建一个仓库并应用该补丁,它将带我们进入“State_Current”?

    最佳答案

    以下命令创建一个包含多个提交的.patch文件。

    git format-patch cc1dde0dd^..6de6d4b06 --stdout > foo.patch
    

    然后可以像这样应用它:
    git am foo.patch
    

    注意:如果要包含第一个提交SHA,请确保使用^..而不是..

    关于git - git:跨多个提交生成单个补丁,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52884437/

    10-14 18:50
    查看更多