`git fetch origin` 和 `git fetch git://127.0.0.1/` 有什么区别
What's the difference between `git fetch origin` and `git fetch git://127.0.0.1/`
我正在试验 git 并在 ~/A
中创建了一个仅包含主分支的存储库。
然后我将此存储库克隆到 ~/B
(通过在 ~/A
和 运行 git clone git://127.0.0.1/
中启动 git daemon
)。
然后我在 ~/A
中创建了一个新的 test
分支,并试图在 ~/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
之后,我可以通过 git checkout test
开始处理 ~/B
中的 test
分支。
当git remote -v
显示
时,git fetch git://127.0.0.1/
和git fetch origin
怎么可能有不同的结果
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 '/'
当你 运行 git fetch origin
要求 git 查找远程命名源的配置时,从配置的 URL 中获取并写入任何 fetchspec 映射将遥控器的信息存储在远程跟踪分支中(例如,将您的 refs/remotes/origin/master
映射到遥控器的 refs/heads/master
)。
当您 运行 git fetch <url>
时,您绕过了远程配置。 git 不会尝试将 url 匹配到远程并使用远程配置。 (实际上,这会产生歧义,您可以拥有多个具有相同 URL 的遥控器,这可能对配置不同的获取规范很有用)。
相反,git fetch <url>
将直接从指定的 url 中获取,并将远程的 HEAD
放入您的 FETCH_HEAD
文件中。由于没有远程,它不会更新远程跟踪分支。您可以检查 FETCH_HEAD
以查看您已获取的内容,但是使用遥控器而不是 url 更容易获取。
我正在试验 git 并在 ~/A
中创建了一个仅包含主分支的存储库。
然后我将此存储库克隆到 ~/B
(通过在 ~/A
和 运行 git clone git://127.0.0.1/
中启动 git daemon
)。
然后我在 ~/A
中创建了一个新的 test
分支,并试图在 ~/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
之后,我可以通过 git checkout test
开始处理 ~/B
中的 test
分支。
当git remote -v
显示
git fetch git://127.0.0.1/
和git fetch origin
怎么可能有不同的结果
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 '/'
当你 运行 git fetch origin
要求 git 查找远程命名源的配置时,从配置的 URL 中获取并写入任何 fetchspec 映射将遥控器的信息存储在远程跟踪分支中(例如,将您的 refs/remotes/origin/master
映射到遥控器的 refs/heads/master
)。
当您 运行 git fetch <url>
时,您绕过了远程配置。 git 不会尝试将 url 匹配到远程并使用远程配置。 (实际上,这会产生歧义,您可以拥有多个具有相同 URL 的遥控器,这可能对配置不同的获取规范很有用)。
相反,git fetch <url>
将直接从指定的 url 中获取,并将远程的 HEAD
放入您的 FETCH_HEAD
文件中。由于没有远程,它不会更新远程跟踪分支。您可以检查 FETCH_HEAD
以查看您已获取的内容,但是使用遥控器而不是 url 更容易获取。