2011-07-04 129 views
1

我使用usb驱动器上的git裸存储库在两台机器上同步我的开发代码(遵循这些步骤git setup for backup & sync between 2 computers)。git fetch origin创建一个新分支

我将我的更改推送到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 

回答

4

这是因为:

git fetch origin 

是一样的,当远程Git默认配置,比

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

它会告诉混帐东西来获取和在哪里存储导致提交。

但是:

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”)

+0

+1非常有帮助。非常感谢 ! – Medorator

相关问题