这些 git 命令究竟做了什么?
What do these git commands exactly do?
我正在为一个开源项目做贡献,我知道以下是 git 工作流程的标准。我需要一个清晰的认识。这取自文档:
- 安装我们的开发环境
- 设置 mozilla 远程 (
$ 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'
)
- 获取 mozilla (
$ git fetch mozilla
)
- 更新本地主机(
$ git checkout master; git pull mozilla master
)
重复步骤 4-7 直到开发完成
- Rebase 问题分支 (
$ git checkout new-issue-888888; git rebase master
)
- 将分支推送到 GitHub (
$ git push origin new-issue-888888
)
- 发出拉取请求(单击拉取请求按钮)
虽然我已经理解了大部分。从 #1 开始,我 fork 了 kuma 并将其克隆到我的本地机器上。这会设置一个远程 origin 回到我克隆的地方。 #2- 原始仓库已添加为 mozilla 远程。现在我有 2 个遥控器; origin 和 mozilla。 #3- 检查一个名为 new-issue-888888
的分支。到那时,mozilla 积累了新的提交。 #4,提交到 origin 的更改。从#5 开始不太清楚。不知道变基。
获取 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 上太慢了,master 分支可能会继续前进。在这种情况下,gitbub 会通知你存在合并冲突,你需要从第 5 步重新开始。
我正在为一个开源项目做贡献,我知道以下是 git 工作流程的标准。我需要一个清晰的认识。这取自文档:
- 安装我们的开发环境
- 设置 mozilla 远程 (
$ 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'
) - 获取 mozilla (
$ git fetch mozilla
) - 更新本地主机(
$ git checkout master; git pull mozilla master
)
重复步骤 4-7 直到开发完成
- Rebase 问题分支 (
$ git checkout new-issue-888888; git rebase master
) - 将分支推送到 GitHub (
$ git push origin new-issue-888888
) - 发出拉取请求(单击拉取请求按钮)
虽然我已经理解了大部分。从 #1 开始,我 fork 了 kuma 并将其克隆到我的本地机器上。这会设置一个远程 origin 回到我克隆的地方。 #2- 原始仓库已添加为 mozilla 远程。现在我有 2 个遥控器; origin 和 mozilla。 #3- 检查一个名为 new-issue-888888
的分支。到那时,mozilla 积累了新的提交。 #4,提交到 origin 的更改。从#5 开始不太清楚。不知道变基。
获取 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 上太慢了,master 分支可能会继续前进。在这种情况下,gitbub 会通知你存在合并冲突,你需要从第 5 步重新开始。