设想:
- 在 github 上存在用户“guru”和他的名为“bigsw”的项目的主要存储库。这个主仓库有几个分支。(“rel1”、“rel2”、“主”)
- 这个项目有 2 个由 user1 和 user2 制作的分叉。
每个 abobe 分叉都具有与主存储库相同的分支,以及一个包含其特定工作的不同分支。因此,user1 分叉了 bigsw 并创建了一个名为“utf8”的分支,而 user2 创建了一个分支“mongo”。
现在我想加入该项目,对于我的工作,我需要以下分支:
- 大师/bigsw:大师
- user1/bigsw:utf8(读作:USER/REPO:BRANCH)
- 用户 2/bigsw:mongo
推荐的工作流程应该是什么?
我的想法是:
- 在 github 上 fork guru/bisgw(这样会得到 myname/bigsw)
git clone git://github.com/myname/bigsw
(获取本地副本)想要保持 user1/bigsw:utf8 分支的同步本地副本,并且同样想要来自 user2 的 fork 的分支“mongo”的副本。所以,我不需要从 user1 和 user2 克隆完整的 repo,每个分支只需要一个分支。有点像:
git remote add user1 git@github.com:user1/bigsw.git
git fetch user1
git checkout -b utf8 user1/utf8
- 同样对于user2的mongo repo(我不确定前两个命令)
git checkout -b i18n
(创建我自己的分支 - 我将在其中进行更改)- 编辑源代码(我希望在上一个命令之后它们会自动“进入”“i18n”分支)
git push origin i18n
(将我对 github 的更改推送到 myname/bigsw:i18n 分支)- 将来某个时候会为我的 i18n 分支提交拉取请求/不知道如何,但还不需要它;)/
以上是正确的工作流程吗?如果是,问题:
- 如何将 user1 的分支“utf8”和 user2 的“mongo”分支克隆到我的本地机器中 - 3.) 中的命令是否正确?
- 如何保持同步(所以我想在我的本地机器上同步所有分支) - 我的更改将只在我的分支“i18n”中。
我是 git/github 的新手——不幸的是需要从这个复杂的模型开始(至少对我来说)。我学到了一些挖掘https://help.github.com/的东西,但并不理解所有的“git 哲学”。
我已经读过:
- https://stackoverflow.com/a/5458814/869025(这很有帮助)
- https://stackoverflow.com/a/9153737/869025 - 给出一些想法,但我不确定
- 如何将来自两个不同存储库的两个分支合并到一个存储库中?
- GitHub 中的分叉与分支
- git合并两个不同存储库的相同目录
- https://help.github.com/
但仍然在黑暗中徘徊...... :(