Git 功能分支工作流程

发布于 2024-11-15 02:52:55 字数 557 浏览 2 评论 0原文

我正在尝试为一个项目做出贡献,并且我想在我的工作中使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

递刀给你 2024-11-22 02:52:55

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

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

You are right. You (or the repository maintainer) needs to rebase your changes onto your develop branch:

git checkout develop
git rebase T
git rebase U

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.

git branch -D T
git branch -D U

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:

git checkout -b T

git checkout develop
git checkout -b U
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文