我正在尝试git,并在~/A
中创建了一个仅包含master分支的存储库。
然后我已将此存储库克隆到~/B
中(通过在git daemon
中启动~/A
并运行git clone git://127.0.0.1/
)。
然后,我在test
中创建了一个新的~/A
分支,并尝试在~/B
中获得该分支。但是,git fetch git://127.0.0.1/
仅显示
From git://127.0.0.1
* branch HEAD -> FETCH_HEAD
要获得新分支,我最终做了git fetch
,据我所知,该分支等效于git fetch origin
。无论如何,这两个都给我
From git://127.0.0.1
* [new branch] test -> origin/test
之后,通过执行test
,可以开始在~/B
中的git checkout test
分支上工作。
当git fetch git://127.0.0.1/
显示时,git fetch origin
和git remote -v
可能会有不同的结果
origin git://127.0.0.1/ (fetch)
origin git://127.0.0.1/ (push)
守护程序对所有命令显示相同的请求,即
[20291] Extended attribute "host": 127.0.0.1
[20291] Request upload-pack for '/'
答案 0 :(得分:2)
运行git fetch origin
时,您要让git查找您的远程命名源的配置,从配置的URL提取并编写任何fetchspec映射以将远程信息存储在远程跟踪分支中(例如,映射{ {1}}到遥控器的refs/remotes/origin/master
)。
运行refs/heads/master
时,将绕过远程配置。 git不会尝试将URL匹配到远程并使用远程配置。 (实际上,这可能是模棱两可的,您可以使用相同的URL拥有多个远程服务器,这对于配置不同的提取规范可能很有用。)
相反,git fetch <url>
将直接从指定的URL中提取,并将遥控器的git fetch <url>
放入您的HEAD
文件中。由于没有远程,因此它不会更新远程跟踪分支。您可以检查FETCH_HEAD
来查看获取的内容,但是使用远程获取而不是使用url获取要容易得多。