通过 Git 跟踪项目本地更改并同时跟上错误修复的最佳方法是什么?

通过 Git 跟踪项目本地更改并同时跟上错误修复的最佳方法是什么?

在我工作的大学,我们使用开源学习管理系统 (Moodle)。随着时间的推移,我们直接编辑源代码来修复我们发现的错误并提供自定义功能。我希望能够通过 Git 存储库跟上错误修复,同时跟踪我们的更改并确保我们的编辑得到保留。

我是一个相对的 Git 新手,但据我所知,这是我们目前的情况。

     --C----C----C----C----C   < custom
    /
---B-----F-----F-----F-----F-----F-----F--...   < origin

B = the build we installed
C = our changes
F = bug fixes

简而言之,我的问题是如何将 C 和 F 结合在一起。合并?变基?我应该将哪棵树合并/变基到另一棵树中?

答案1

合并和变基基本上是相同的:使最后一次提交合并两个分支的更改。但它们执行的方式不同。

合并会创建一个具有两个指定为父级的提交,并且重新定基会“移动”您的树,因此它的第一次提交基于(即有一个父级)其他分支(在您的情况下为原点)的最后一次提交。得到的树状态相同。

在这种情况下正确的做法是合并custom分支origin

git checkout custom
git merge origin

仅当您想将一堆补丁发送给项目维护者时,重新定基才有用,这样他就不需要手动使它们适应最新的更改。

重新定基的命令如下:

git checkout custom
git rebase origin

另外,还有一个 git-cherry-pick(1) 命令,可用于将任意分支中的任意提交应用为补丁。

相关内容