gpt4 book ai didi

Git:从命名远程获取和从 URL 获取有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 13:20:21 27 4
gpt4 key购买 nike

假设我从路径 /path/to/repo 克隆了一个 git 存储库。原始存储库将是一个名为“origin”的远程仓库。我可以使用命令 git fetch origin 从 origin 获取对象。这将从远程“源”检索所有对象,包括创建的任何分支。

奇怪的是,如果我使用命令 git fetch/path/to/repo 显式地从同一个存储库中获取数据,我似乎会获取所有提交对象,但不会获取任何分支。

这是为什么呢?在这两种情况下,我不是在做完全相同的事情吗? Git 的行为为何如此不同?

最佳答案

命名远程使用他们的配置,他们设置了一个 refspec获取此 Remote 时的模式:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = /path/to/repo

所以,这两种格式是等价的:

git fetch origin
git fetch /path/to/repo +refs/heads/*:refs/remotes/origin/*

基本上:git fetch <path> <source>:<destination> .目的地在这里很重要,因为它是存储远程 HEAD 和分支指针的地方。

通过做 git fetch /path/to/repo ,您没有设置任何 refspec。因此,它只获取提交,而不是对象,因为 git尚未指示获取和存储它们。

这里可能有一些细节或命名约定不正确,请随时编辑。但是全局思路应该是正确的

关于Git:从命名远程获取和从 URL 获取有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14085504/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com