2013-05-30 53 views
11

如果我在一个地方分支是跟踪任何远程分支和我发出命令默认的远程GIT中获取

git fetch 

鉴于我在$GIT_DIR/config定义了几个遥控器,从遥控器是取得完成?

我试图从man page找到,但这一点对我来说还不清楚。

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

回答

2

它将获取远程原点。这是您执行 GIT clone命令时的第一个远程。

+1

您可能从未在回购库上执行过'git clone',但在事实之后添加了远程(称为'起源'或其他)。 – mwfearnley

15

如果您有多个远程存储库,并且未指定任何远程存储库名称,则默认情况下将使用origin。如果没有远程仓库命名的由来,那么它就会因错误说

fatal: No remote repository specified. Please, specify either a URL or a 
remote name from which new revisions should be fetched. 

另外:我怎样才能远程更改此默认没有使当地分行追踪?

您可以将该存储库名称重命名为'origin'以使其成为默认值。

小心:如果当前分支已经在另一个远程上指定了上游,这将不起作用。从git help fetch:“当没有指定远程时,默认情况下将使用远程原点,除非为当前分支配置了上游分支。”在这种情况下,您可以通过编辑在.git/config中配置的分支的remote字段,将上游分支更改为使用origin

+2

有没有其他方法可以将遥控器的名称更改为原点? –

+5

让git假设“origin”是默认的远程设备有点不灵活。我总是将我的遥控器重命名为“github”,“internal”等更有意义。是的,当“origin”remote不存在时,git会尖叫“致命的:没有指定远程存储库”。 – Devy

+1

@KlasMellbourn:你可以设置你的跟踪分支的远程使用的是不同于'origin'的远程,然后当你运行'git fetch'并检出其中一个分支时默认使用该远程。 – ntc2

2

在您的项目文件夹中,当您在第一步中初始化git时,会创建.git文件夹。

查看此文件夹中名为config的文件,它包含所有分支信息。原点被用作默认值。

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = [email protected]:project.git 

所以从这里列出的URL中获取代码。