我可以使用Git将更新补丁应用于自定义软件吗?

时间:2013-12-23 11:17:31

标签: git

在我的一个网站上,我安装了论坛软件(PunBB)。因为软件不提供任何钩子或过滤器,我随着时间的推移添加了自定义到核心。这意味着更新到更新的版本变得越来越麻烦,因为我必须手动完成所有操作。

我之前从未使用过Git,但我已经读过它了。大多数用例都是从一个干净的代码库开始,并使用Gi​​t来跟踪更改,但我必须从已经广泛更改的代码开始,并添加补丁。我无法在我的情况下找到使用Git的方法,我真的想知道是否可以这样做。

1 个答案:

答案 0 :(得分:5)

是的,你可以而且绝对应该。

  • 从原生源(在您的情况下为git clone https://github.com/punbb/punbb)克隆原始存储库
  • 从上游主分支开始创建本地分支。
  • 创建上游主副本和自定义副本之间的差异,并将其提交到您的分支。
  • 继续将您的自定义提交到本地分支,并不时从上游主分支合并(或者有时只是挑选)。
  • 考虑回馈你的一些工作 - 最终会使合并更容易。

编辑:根据您的要求扩展了第3步:

  1. 克隆上游存储库后,根据上游主流状态创建本地开发分支(例如mybranch):

    git branch mybranch origin/master
    git checkout mybranch
    
  2. 编辑此分支中的文件以反映您的本地修补程序。但是,您希望这种差异尽可能小 - 不要盲目地替换所有文件,花一些时间考虑是否可以靠近上游。

  3. 将此差异提交到mybranch

  4. 有时,从上游获取新的提交到主控:

    git fetch origin
    

    并将这些更改合并到您的mybranch中(假设您在其中,如果没有,请先结帐到mybranch):

    git merge origin/master