我 fork 了一个 GitHub 项目,在不同的分支中实现了一些功能并修复了一些错误,为所有这些项目发送了 pull 请求。
在等待它们被上游接受时,我想使用所有这些功能和修复。为此,我从“upstream/master”创建了一个分支“my-master”,并 merge 了尚未在上游的其他分支的所有更改。我还将已应用补丁的列表写入 README.md。
当我的一个补丁上游时,没有理由再保留那个分支,所以我删除了它。
它有效,但是,这种方法存在一个问题:
有时,我需要对所有未接受的分支进行 rebase ,以使它们保持最新状态。之后,我必须重新创建“my-master”分支并再次更新其 README.md。
有什么方法可以加快或自动执行此操作?
请不要建议我尝试 git-up
。它很有用,但作用不同。
最佳答案
一种技术是在每次发布时将您的分支 rebase 到上游。您可能希望在旧的分支提示处创建一个标记,或者一个日期版本的分支名称,这样您就不会在垃圾收集后丢失旧的历史记录。
或者您可能想使用 msysgit 使用的 merge rebase 脚本 https://github.com/msysgit/msysgit/blob/master/share/msysGit/merging-rebase.sh ,这给人留下了等同于上述 rebase 过程的连续发展线(通过第二个 parent )的印象。
在这两种情况下,如果您的 rebase 修复(来自冲突)最终出现问题,您会保留一组您满意的提交。
这涉及两个问题:
- 上游更新缓慢(相对于您想要/需要的速度)
- 上游针对不同的“平台”,您始终需要针对您的平台/目的进行“顶层”修复。
关于git - 在等待它们 merge 到上游时保持 Git 分支是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455476/