Git 功能分支工作流程
我正在尝试为一个项目做出贡献,并且我想在我的工作中使用 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)。
I am trying to contribute to a project and I'd like to use git-flow workflow(?) on what I work.
Say, I have checkout'd the develop
branch of the remote repository (github) and that I've setup 2 feature branches (T for Translation, U for Update):
---o---o---o (D)
|---Ta---Tb (T)
\---Ua---Ub---Uc (U)
Now, for each of the branches, a pull request is made to the upstream
repository maintainer and he accepts them all and merges them to the upstream/develop
branch.
What is the correct procedure so that I end up with:
---o---o---Ta---Tb---Ua---Ub---Uc (D)
|- (T)
\- (U)
Something tells me that git rebase
is what I need. (Please note I am on Windows).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你是对的。您(或存储库维护者)需要将更改变基到您的开发分支:
在变基期间,您可能需要解决发生的冲突。
您的最后一个分支图显示 T 和 U 以 Uc 作为其父级。变基不会更改分支父级。您可以通过删除分支并在上述变基后重新创建它们来完成此操作。
您需要使用大写 -D 开关强制删除分支,因为 T 和 U 分支从未合并到开发分支中,因此 git 不知道分支更改已反映在
develop 分支。
之后,您可以重新创建它们:
You are right. You (or the repository maintainer) needs to rebase your changes onto your develop branch:
During the rebase, you might need to resolve conflicts if they occur.
Your last branch diagram shows T and U have Uc as their parent. The rebase won't change the branches parent. You can do this by deleting your branches and recreating them after the rebasing above.
You'll need to use the capital -D switch to force the branch deletion because the T and U branch was never merged into the develop branch, so git doesn't know that the branch changes are reflected in the
develop
branch.After that, you can recreate them: