我使用这份文档设置了几个GitHub代码库:
echo "# foo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/foo-1/foo.git
git push -u origin master
名称origin
有特殊含义吗?
如果有,那么它纯粹是语义上的吗?
我使用这份文档设置了几个GitHub代码库:
echo "# foo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/foo-1/foo.git
git push -u origin master
名称origin
有特殊含义吗?
如果有,那么它纯粹是语义上的吗?
在提交 6687f8f(2005年8月,git v0.99.5)之前,.git/branches/origin
不会变成.git/remotes/origin
,当您可以获取多个上游仓库时。
现在多头抓取已完成,让我们迁移使用"
git clone
"命令创建的新仓库的默认配置。原始的
$GIT_DIR/branches
尚未过时,但默认情况下也从模板创建远程目录。
然后 提交 e125c1a (2005年11月,v0.99.9c) 添加:
默认情况下,新克隆的存储库设置了
.git/remotes/origin
来跟踪远程master
到origin
,但是忘记了自己创建origin
分支。
此外,它硬编码了假设远程HEAD
指向 "master
",这可能并不总是正确的。
它开始在提交dfeff66(2006年3月,git 1.3.0)中作为上游存储库演变为“origin”,其中:
上游分支头被复制到
.git / refs / remotes /
而不是.git / refs / heads /
,并且设置.git / remotes / origin 文件以反映此事实。
需要使用Eric Wong的fetch / pull更新来了解.git / refs / remotes
,以便进一步更新以这种方式克隆的存储库。
这在提交c72112e中详细说明。
在提交记录5e27e27(2006年7月,git 1.4.2)引入获取时,默认为“origin”。
origin
远程仓库的信息存储在提交记录255cae8 (2006年11月,git 1.5.0)
例如以前存储在.git/remotes/origin
中的信息:
URL: proto://host/path
Pull: refs/heads/master:refs/heads/origin
现在已将以下内容添加到.git/config
中:
[remote "origin"]
url = proto://host/path
fetch = refs/heads/master:refs/heads/origin
git pull
默认使用 提交955289b(2006年12月,git 1.5.0) 的 origin
:
如果在 .git/config
文件中没有任何规定,git-pull
将执行 "git-pull origin
";这将默认从远程仓库的第一个“pull”定义 "origin
" 进行拉取。
然后 更新词汇表:
origin
:
默认的上游仓库。 大多数项目至少有一个上游项目进行跟踪。默认情况下,使用“origin
”进行此操作。
新的上游更新将被获取到命名为origin/name-of-upstream-branch
的远程跟踪分支中,您可以使用“git branch -r
”查看。