保持Git分支最新,同时等待它们合并到上游

时间:2013-10-18 17:19:07

标签: git github branch

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

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

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

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

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

有没有办法加速或自动化?

请不要告诉我尝试git-up。它很有用,但做了不同的事情。

1 个答案:

答案 0 :(得分:1)

一种技术是每次释放时将分支重新分支到上游。您可能希望在旧分支提示处创建标记,或者使用日期版本的分支名称,以便在垃圾回收后不会丢失旧历史记录。

或者你可能想要使用msysgit使用https://github.com/msysgit/msysgit/blob/master/share/msysGit/merging-rebase.sh的合并rebase脚本,这会产生一个连续的开发线(通过第二个父级)的印象,它等同于上面的重新定位过程。

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

这包括两个问题:

  1. 上游更新缓慢(相对于您想要/需要的速度)
  2. 上游针对不同的“平台”,您将始终需要“顶部”修复,以满足您的平台/目的。