用路径而不是远程git获取

时间:2010-09-30 09:42:43

标签: git git-fetch git-remote

我理解运行git fetch <remote>的想法,因为远程分支随后可以git checkout <remote>/<branch>使用。

但是,如果我只是运行

,它是如何工作的
git fetch path/to/other/repo

如何查看相应的分支?请注意,操作以静默方式运行(即使使用--verbose),并且不会创建新分支。

编辑:只是为了清楚:我完全理解git如何使用遥控器。我只是对这种替代语法git fetch path/to/remotegit fetch <url>感到好奇。它应该如何工作?为什么不创建新的分支?为什么即使在详细模式下它也会静默运行?预期用途是什么?

3 个答案:

答案 0 :(得分:2)

即使它在文件系统方面是“本地的”,另一个存储库也是一个远程存储库。

如果要使用它,请先将其添加为远程存储库(即使网址是本地的):

git remote add <name> <url>

然后,继续执行git fetch(以及其他命令),方法与远程计算机上的存储库相同。

修改 如果从本地路径执行简单的git fetch,则会创建一个名为FETCH_HEAD的新伪分支。您可以在新分支中查看它,例如使用:

git checkout -b new_branch FETCH_HEAD

答案 1 :(得分:1)

我认为最好的解释(比文档好得多)是answer to another question Jakub Narębski

基本上:

git fetch <path>

只提取遥控器的HEAD分支,并将其本地存储到FETCH_HEAD

git fetch <path> <branch>

获取远程仓库中的分支并将其存储在FETCH_HEAD

在JakubNarębski的回答中描述了更高级的用法,但是,正如他自己所说,获取的最佳方法是使用命名的遥控器。

答案 2 :(得分:0)

您必须明确地将refspec传递给git fetch以获取远程分支。 git help fetch应该有所帮助。