【问题标题】:Git feature branches workflowGit 功能分支工作流程
【发布时间】:2011-09-14 00:52:25
【问题描述】:

我正在尝试为一个项目做出贡献,我想在我的工作上使用 git-flow 工作流(?)。 比如说,我已经检查了远程存储库 (github) 的 develop 分支,并且我已经设置了 2 个功能分支(T 代表翻译,U 代表更新):

---o---o---o (D)
           |---Ta---Tb (T)
           \---Ua---Ub---Uc (U)

现在,对于每个分支,都向 upstream 存储库维护者发出拉取请求,他接受所有请求并将它们合并到 upstream/develop 分支。

什么是正确的程序,所以我最终得到:

---o---o---Ta---Tb---Ua---Ub---Uc (D)
                               |- (T)
                               \- (U)

有些东西告诉我git rebase 是我需要的。 (请注意我在 Windows 上)。

【问题讨论】:

    标签: git git-branch git-rebase git-remote


    【解决方案1】:

    你是对的。您(或存储库维护者)需要将您的更改重新定位到您的开发分支:

    git checkout develop
    git rebase T
    git rebase U
    

    在变基期间,如果发生冲突,您可能需要解决。

    您的最后一个分支图显示 T 和 U 以 Uc 作为其父级。变基不会更改分支父级。您可以通过删除分支并在上述变基后重新创建它们来做到这一点。

    git branch -D T
    git branch -D U
    

    您需要使用大写 -D 开关来强制删除分支,因为 T 和 U 分支从未合并到开发分支中,所以 git 不知道分支更改反映在 develop分支。

    之后,您可以重新创建它们:

    git checkout -b T
    
    git checkout develop
    git checkout -b U
    

    【讨论】:

    • 我想指出的是,如果上游开发人员进行了任何更改其他而不是合并两个功能分支。
    • 这只会改变develop 分支。然后您需要使用例如git branch -M 移动其他分支。
    • 所以基本上,在拉取请求被接受并且upstream/develop 已经更新了我的更改之后,我继续将git pull upstream/develop 放入我的develop,然后我该怎么办?一种。分别从TU 到我的develop b。删除我的T & U 分支并重新创建它们
    • 删除您的 T & U 分支并根据需要重新创建它们。
    • 感谢您的澄清,我希望有一个明确的方法可以通过 rebase 实现这一点,但无论如何,它就是这样。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多