5

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

但是如果我只是运行它是如何工作的

git fetch path/to/other/repo

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

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

4

3 回答 3

2

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

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

git remote add <name> <url>

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

编辑: 如果您git fetch从本地路径执行简单操作,它会创建一个名为FETCH_HEAD. 您可以在新分支中检查它,例如使用:

git checkout -b new_branch FETCH_HEAD
于 2010-09-30T09:47:32.780 回答
1

我认为最好的解释(比文档好得多)是Jakub Narębski对另一个问题的回答。

基本上:

git fetch <path>

只需获取HEAD远程的分支,并将其本地存储到FETCH_HEAD.

git fetch <path> <branch>

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

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

于 2010-09-30T14:11:14.417 回答
0

您必须明确传递 a refspectogit fetch才能获取远程分支。git help fetch应该有帮助。

于 2010-09-30T11:44:51.957 回答