git fetch的默认远程

Kla*_*urn 16 git git-fetch

如果我在跟踪任何远程分支的本地分支上,并且我发出命令

git fetch
Run Code Online (Sandbox Code Playgroud)

鉴于我已经定义了几个遥控器$GIT_DIR/config,远程是从哪个遥控器完成的?

我试图从手册页中找到,但这一点对我来说还不清楚.

另外:如何在不进行本地分支跟踪的情况下更改此默认远程?

0xc*_*0de 15

如果您有多个远程存储库,并且未指定任何远程存储库名称,origin则默认情况下将使用该存储库.如果没有名为origin的远程存储库,则会出错

fatal: No remote repository specified.  Please, specify either a URL or a
remote name from which new revisions should be fetched.
Run Code Online (Sandbox Code Playgroud)

另外:如何在不进行本地分支跟踪的情况下更改此默认远程?

您可以将该存储库名称重命名为"origin"以使其成为默认名称.

小心:如果当前分支已经在不同的遥控器上指定了上游,则这将不起作用.发件人git help fetch:"当没有指定远程时,默认情况下将使用原始远程,除非为当前分支配置了上游分支." 在这种情况下,您可以origin通过编辑remote配置的分支的字段来更改要使用的上游分支.git/config.

  • 让git假定"origin"是默认的遥控器有点不灵活.我总是将我的遥控器重命名为更有意义,如"github","internal"等.是的,当"origin"遥控器不存在时,git会尖叫"致命:没有指定远程存储库". (5认同)
  • 除了将遥控器的名称更改为原点之外,没有其他选择吗? (2认同)

小智 2

它将获取原始远程。这是您执行 GIT clone命令的第一个遥控器。

  • 您可能从未在存储库上执行过“git clone”,但事后添加了遥控器(称为“origin”或其他)。 (3认同)