gpt4 book ai didi

Github 分支和分支

转载 作者:太空狗 更新时间:2023-10-29 13:44:00 26 4
gpt4 key购买 nike

场景:

  • 在 github 上存在用户“guru”和他的名为“bigsw”的项目的主要存储库。这个主要 repo 有几个分支。 ("rel1", "rel2", "master")
  • 这个项目有 2 个分支,分别由 user1 和 user2 制作。
  • 每个 abobe 分支都具有与主要存储库相同的分支,以及一个包含其特定工作的不同分支。因此,用户 1 fork 了 bigsw 并创建了一个名为“utf8”的分支,用户 2 创建了一个分支“mongo”。

  • 现在我想加入这个项目,为了我的工作我需要以下分支:

    • guru/bigsw:master
    • user1/bigsw:utf8(读作:USER/REPO:BRANCH)
    • user2/bigsw:mongo

推荐的工作流程应该是什么?

我的想法是:

  1. 在 github 上 fork guru/bisgw(所以会得到 myname/bigsw)
  2. git clone git://github.com/myname/bigsw(获取本地副本)

  3. 想要同步 user1/bigsw:utf8 分支的本地副本,并且同样想要来自 user2 的分支的分支“mongo”的副本。所以,我不需要从user1 和 user2 各有一个分支。有点像:

    • git remote add user1 git@github.com:user1/bigsw.git
    • git fetch user1
    • git checkout -b utf8 user1/utf8
    • 对于用户 2 的 mongo 存储库也是如此(我不确定前两个命令)

  4. git checkout -b i18n(创建我自己的分支 - 我将在其中进行更改)
  5. 编辑源代码(我希望在执行完之前的命令后它们会自动“进入”“i18n”分支)
  6. git push origin i18n(将我对 github 的更改推送到 myname/bigsw:i18n 分支)
  7. 将来某个时候会为我的 i18n 分支提交一个 pull request/不知道如何,但现在不需要它;)/

以上是正确的工作流程吗?如果是,问题:

  • 如何将用户 1 的分支“utf8”和用户 2 的“mongo”分支克隆到我的本地计算机中 - 3.) 中的命令是否正确?
  • 如何保持所有同步(所以我想在我的本地机器上同步所有上面的分支)- 我的更改将在我的分支“i18n”中。

我是 git/github 的新手 - 不幸的是需要从这个复杂的模型开始(至少对我来说)。我从 https://help.github.com/ 中学到了一些东西,但不了解所有“git 哲学”。

我已经读过了:

但还是在黑暗中徘徊... :(

最佳答案

总的来说不错,但我有一些建议。

我会省略 git checkout -b userX userX/branch 调用。相反,我会确保我在 guru 的原始分支中,并创建一个本地分支,您可以在其中将两个 Remote merge 在一起,如下所示:

git checkout -b utf8-mongo
git merge user1/utf8
git merge user2/mongo

您可能会遇到 merge 冲突,乍一看可能很可怕,但您最终会找到解决方法(查找有关如何解决 merge 冲突的指南,如果不确定优先考虑哪个更改,请与作者进行讨论).

然后您可以使用以下方法创建自己的分支:

git checkout -b i18n

正如你猜想的那样。进行更改并遵守规则 commit early, commit often 。每当您想从所有上游分支中提取更改时,您都可以执行以下操作:

git checkout utf8-mongo
git pull guru/master
git pull user1/utf8
git pull user2/mongo

像上面那样解决任何 merge 冲突,然后切换回您的分支并获得新的更改:

git checkout i18n
git merge utf8-mongo

拆分分支背后的基本原理是 merge 冲突难以管理,您将来可能会丢弃分支并从头开始。在那种情况下,您不想再次 merge 其他分支,因此您将它们保存在一个单独的分支中。

当使用 githubs web 界面进行 pull 请求时,您只需请求从您的分支 i18n pull 。人们(即大师)可能会不高兴,因为你 pull 进了很多其他人的分支,这些分支可能还不够成熟,无法 merge 到他自己的分支中。您可能需要一些邮件联系人来协调该请求。最好的办法可能是从一开始就与开发人员进行健康的沟通。

关于Github 分支和分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com