6

我分叉了一个 GitHub 项目,实现了一些功能,并在不同的分支中修复了一些错误,并为所有分支发送拉取请求。

在等待它们被上游接受时,我想使用所有这些功能和修复。为此,我从“upstream/master”创建了一个分支“my-master”,并合并了尚未在上游的其他分支的所有更改。我还将应用补丁的列表写入 README.md。

当我的一个补丁进入上游时,没有理由再保留该分支,所以我将其删除。

它有效,但是,这种方法存在问题:

有时,我需要重新设置所有未接受的分支,以使它们保持最新。之后,我必须重新创建 'my-master' 分支并再次更新其 README.md。

有没有办法可以加快或自动化这个?

请不要建议我尝试git-up。它很有用,但作用不同。

4

1 回答 1

1

一种技术是每次发布时都将分支重新定位到上游。您可能希望在旧分支提示处创建一个标签,或者一个日期版本化的分支名称,这样您就不会在垃圾收集后丢失您的旧历史记录。

或者您可能想要使用 msysgit 使用的合并 rebase 脚本https://github.com/msysgit/msysgit/blob/master/share/msysGit/merging-rebase.sh,这会产生连续开发线的印象(通过第二个父级),这相当于上述变基过程。

在这两种情况下,如果您的 rebase 修复(来自冲突)最终出现问题,您会保留一组您满意的提交。

这涉及两个问题:

  1. 上游更新缓慢(相对于您想要/需要的速度)
  2. 上游针对不同的“平台”,您将始终需要针对您的平台/目的进行“顶部”修复。
于 2013-10-19T15:49:02.357 回答