维护人员工作流

这个页面是为维护人员准备的 — 我们中那些将自己或他人的更改合并到上游存储库的人。

作为一名维护人员,您完全掌握了 开发工作流

请参阅中的说明 将存储库链接到上游回购 添加对上游回购具有只读访问权限的遥控器。作为维护人员,您拥有读写访问权限。

让你的上游遥控器有一个可怕的名字很好,提醒你它是一个读写遥控器::

git remote add upstream-rw git@github.com:scikit-image/scikit-image.git
git fetch upstream-rw

整合变革

假设您有一些需要进入主干的更改 (upstream-rw/master )。

更改发生在您当前所在的某个分支中。例如,您正在查看的某人的更改如下::

git remote add someone git://github.com/someone/scikit-image.git
git fetch someone
git branch cool-feature --track someone/cool-feature
git checkout cool-feature

因此,现在您已经在分支机构上了,这些更改将合并到上游。本节的其余部分假定您在此分支上。

几个承诺

如果只有几个提交,请考虑将基准重新设置为上游::

# Fetch upstream changes
git fetch upstream-rw
# rebase
git rebase upstream-rw/master

请记住,如果您执行并推送Rebase,您将不得不手动关闭任何GitHub拉请求,因为GitHub将无法检测到更改已被合并。

一长串的承诺

如果有一系列更长的相关提交,请考虑合并::

git fetch upstream-rw
git merge --no-ff upstream-rw/master

合并将被GitHub检测到,并应自动关闭任何相关的拉取请求。

请注意 --no-ff 上面。这迫使GIT进行合并提交,而不是进行快进,以便这些提交从主干分支出来,然后通过合并重新联接主历史记录,而不是看起来直接在主干之上进行。

查看历史记录

现在,无论是哪种情况,您都应该检查历史记录是否合理,并且您是否有正确的提交:

git log --oneline --graph
git log -p upstream-rw/master..

上面的第一行只是以一种简洁的方式显示了历史,并用文本表示了历史图形。第二行显示提交的日志,其中不包括可从主干访问的提交 (upstream-rw/master), and including those that can be reached from current HEAD (implied with the .. 在末尾)。因此,它显示了与主干相比,此分支独有的提交。这个 -p 选项以补丁形式显示这些提交的差异。

推送到中继线

git push upstream-rw my-new-feature:master

这将推动 my-new-feature 在此存储库中分支到 master 分支机构在 upstream-rw 存储库。