我正在为一个开源项目做贡献,我知道以下是git工作流的标准。我需要一个明确的理解。这取自文档:
$ git remote add mozilla git://github.com/mozilla/kuma.git
)$ git checkout -b new-issue-888888
)
开发bug分支。 [时间过去了,mozilla/kuma
存储库累积了新的提交]
$ git add . ; git commit -m 'fix bug 888888 - commit message'
)$ git fetch mozilla
)$ git checkout master; git pull mozilla master
)重复步骤4-7直到开发完成
$ git checkout new-issue-888888; git rebase master
)$ git push origin new-issue-888888
)我已经了解了大部分内容。从#1开始,我已经将kuma分叉并将其克隆到我的本地机器上。这会将远程 origin 设置回我克隆的位置。 #2-原始仓库已添加为 mozilla 远程。现在我有2个遥控器; 原产地和 mozilla 。 #3-结帐一个名为new-issue-888888
的分支。到那时, mozilla 会累积新的提交。 #4,提交给 origin 的更改。从#5开始不太清楚。不知道rebase。
答案 0 :(得分:3)
获取mozilla($ git fetch mozilla
)
这将下载对原始Mozilla遥控器所做的任何更改,但不会更改您的工作目录。这是为下面做准备。
更新本地主人($ git checkout master; git pull mozilla master
)
这会切换到master
分支,并使用mozilla/master
的提交进行更新。现在你的主人与远程主人同步。
Rebase问题分支($ git checkout new-issue-888888; git rebase master
)
这会将master
(自您开始修补后继续开发Mozilla)所发生的更改集成到您的功能分支中。这是必需的,因此您的分支将是无冲突的合并。
将分支推送到GitHub($ git push origin new-issue-888888
)
现在,您将功能推送到github上原始仓库的分支,这样您就可以从UI发送PR。
发出拉取请求(点击拉取请求按钮) 最后将拉出请求发送到主回购。如果你对7-9太慢了,那么主分支就可以继续了。在这种情况下,gitbub会通知您存在合并冲突,您需要从步骤5重新启动。