EGit:为什么"不建议将本地分支作为上游"?

San*_*ors 8 git branch egit

当我创建一个新的分支时,如果我设置" 配置上游推送和拉动 ",则会出现一个警告(在屏幕截图中以蓝色圈出).为什么不推荐这个?这有哪些潜在的问题或缺点?

我通过搜索引擎运行了这个警告,并在https://git-scm.comhttps://www.eclipse.org/egit/上搜索了它,但我一无所获,当我点击"?"时 该对话框中的帮助按钮没有任何反应

此外,如果我想遵循该警告的建议并"使用远程分支",我该怎么做?除了" 配置上游推送和拉动 "复选框之外,我在该对话框中更改的任何内容都不会导致警告消失.

tor*_*rek 4

将另一个本地分支设置为上游没有任何问题。它只是意味着git fetch什么都不做\xe2\x80\x94你已经拥有了自己的所有提交;git merge从另一个分支合并;git rebase变基到另一个分支;和git push尝试快进另一个分支,如果不能则失败。

\n\n

“其他分支”(上游)是您自己的普通本地分支,像往常一样存储在您的存储库中。因此,您是自己的上游(从另一个分支来看,也是您自己的下游)。感觉有点乱伦。:-)

\n\n

我完全不清楚其他本地分支 EGit 将在这里设置为上游。(我不使用 Egit。)根据图像中的内容,我的猜测是master

\n

  • 好吧……Eclipse EGit 可能会尝试使用与普通 Git 不同的术语(这在某些方面可能很好,因为 Git 的术语不太好)。但 Git 根本没有任何“远程分支”,只有(本地)分支(分支名称)和“远程跟踪”分支。远程跟踪有时会缩短为“远程”(但不应该如此)。同时,您的 Git 与其他 Git 进行通信,我们可以将其称为“远程”,并且*其他* Git 也有(本地)分支,因此我们可以将这些分支称为“远程分支”。您可以看到这可能会变得非常混乱,而且速度非常快! (3认同)
  • 最后,再一次,我不使用(也从未使用过)EGit,但从逻辑上讲,您可以通过单击“选择...”按钮来选择不同的上游,这将显示现有远程跟踪分支的列表。请注意,如果远程“origin”还没有分支,则会出现问题:您将不会“拥有”“origin/MyNewBranch”,因为您的 Git 在任何时候都没有在“origin”*上看到任何名为“MyNewBranch”的内容做了一次抓取。在这种情况下,在常规 Git 中,您只需不设置*任何*上游...*还*。当你让 Git 告诉他们的 Git 在那边*创建* `MyNewBranch` 之后,您可以稍后设置它。 (3认同)
  • 一般来说,在普通 Git 中,设置一个(本地)分支(例如“master”或“dev”之类的名称)也可以记住“远程跟踪分支”的名称,例如“origin/master”或“origin/dev” 。然后,每当您运行“git fetch”来调用源上的其他 Git 时,您的 Git 都会获取所有*其* Git 分支(其“master”等)的列表,并根据需要将内容复制到*您的*存储库,然后更新您的“origin/master”等以记住“我在那里看到的”。因此,您的远程跟踪分支会自动更新“git fetch”。然后,您可以让本地“master”引用“origin/master”,[续] (2认同)
  • 然后每个“git fetch”都会更新“origin/master”,现在您的 Git 可以告诉您“master”与存储在“origin/master”中的原始内存“master”相比如何。(哇!)这就是远程跟踪分支的工作原理:它们只是远程分支的记忆(没有正式名称,但逻辑上是“远程分支”,这就是为什么我们应该仔细调用 *我们的*“远程-*跟踪*分支”代替)。 (2认同)