0

在我看来,“上游分支”这个词是模棱两可的,似乎有两个上下文。

  1. 上游分支是由本地分支跟踪的分支(请参阅Git 分支 - 远程分支),并且

  2. 上游分支是变基上下文中的东西(请参阅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
4

1 回答 1

1

变基会将对工作分支所做的提交应用到一个分支,该分支是或曾经是该分支的祖先。如果您考虑实际流的流动,上游分支是在过去某处离开当前分支的分支。

变基可能不适用于下游分支,或者那些在当前分支之前提交的分支。例如,如果您在完成一些工作后要分支,然后检查前一个分支并尝试重新定位到第二个分支,它不会工作。

所以上游实际上只是指一个分支,它是当前分支历史的一部分,更具体地说,是您打算变基的分支。本地和远程无关。

于 2020-10-08T13:09:42.643 回答