我已经克隆了一个存储库(git clone --bare)并且显然git fetch没有更新它,但git fetch origin master:master确实如此.我不明白这些语法之间的所有细微差别:
git fetchgit fetch origingit fetch origin mastergit fetch origin master:masterorigin是我唯一的远程,master是我唯一的分支,帮助说:
如果未指定远程,则默认情况下将使用原始远程
那么为什么这四条线不一样呢?
编辑:三个第一个命令似乎在一个名为的临时分支中获取FEATCH_HEAD.但由于我使用裸克隆,我无法使用git merge获取结果.
编辑2:从@ torek的回答中,我做了一个小测试并且差异了--bare和--mirror克隆目录.结果如下:
diff -ru mesa.bare.git/config mesa.mirror.git/config
--- mesa.bare.git/config 2014-10-14 20:01:42.812226509 -0400
+++ mesa.mirror.git/config 2014-10-14 20:00:53.994985222 -0400
@@ -4,3 +4,5 @@
bare = true
[remote "origin"]
url = git://anongit.freedesktop.org/mesa/mesa
+ fetch = +refs/*:refs/*
+ mirror = true
Only in mesa.bare.git/objects/pack: pack-17005b7e1020d291eb86d778a174ecf0d60d92a9.idx …Run Code Online (Sandbox Code Playgroud) 我正在进行获取/合并,并想知道做之间是否有任何区别
git fetch
Run Code Online (Sandbox Code Playgroud)
和
git fetch origin master
Run Code Online (Sandbox Code Playgroud)
我remote repository在GitHub上没有任何其他分支和原点.
当我做:
git fetch origin master
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:XXXXXXXXXXXXXXX
* branch master -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
只是:
git fetch
From github.com:XXXXXXXXXXXXXXX
531d466..aaf6df0 master -> origin/master
Run Code Online (Sandbox Code Playgroud)
请注意,主人指向不同的东西; 在一个案例FETCH_HEAD和其他情况下,origin/master?他们不一样吗?