git fetch origin创建一个新分支

时间:2011-07-04 17:45:00

标签: git

我使用usb驱动器上的git bare存储库在2台计算机上同步我的开发代码(按照以下步骤git setup for backup & sync between 2 computers)。

我将更改推送到USB上的裸仓库,然后获取&在另一台机器上合并。

我的理解是这两个命令是相同的,但它们的输出是不同的。日志显示第一个命令创建一个新分支。

Method 1
git fetch origin
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /usb/backup/code
 * [new branch]      master     -> origin/master


Method 2
git fetch /usb/backup/code.git
From /usb/backup/code
 * branch            HEAD       -> FETCH_HEAD

1 个答案:

答案 0 :(得分:4)

那是因为:

git fetch origin 
当默认配置git remote时,

是相同的,而不是

git fetch origin +refs/heads/*:refs/remotes/origin/*

它将告诉Git要获取什么以及在何处存储生成的提交。

可是:

git fetch path/to/.git

表示您没有受益于默认的refspec设置origin +refs/heads/*:refs/remotes/origin/*,这意味着您正在执行:

git fetch path/to/.git HEAD:

(您获取远程HEAD而未指定放置它的位置) 生成的提交is stored in FETCH_HEAD ref

有关详情,请参阅“Having a hard time understanding git-fetch” (和“git fetch with path instead of remote”)