在我看来,“上游分支”这个词是模棱两可的,似乎有两个上下文。
上游分支是由本地分支跟踪的分支(请参阅Git 分支 - 远程分支),并且
上游分支是变基上下文中的东西(请参阅Git 分支 - 变基)。
(2) 中的“上游”显示在CLI 帮助中:
$ git rebase -h
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
or: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
or: git-rebase --continue | --abort | --skip | --edit-todo
第一个对我来说很清楚,但是,就我的一生而言,我似乎无法理解“上游”在rebase
. 此外,我遇到了“多个上游分支”(具有多个上游的 git 分支),这进一步混淆了这个难题。
在我看来,这个“上游分支”的概念需要在 git-scm.com 文档中消除歧义。这将大大有助于理解以下命令:
$ git rebase --onto master server client
在 Git 分支 - 变基中描述,以及
$ git rebase master server