2010-09-30 44 views
4

我瞭解運行git fetch <remote>的想法,因爲遠程分支隨後可用於git checkout <remote>/<branch>使用路徑代替遠程的git獲取

但如何做,如果我只是運行

git fetch path/to/other/repo 

我怎麼能簽出相應的分支機構工作的呢?請注意,該操作靜默運行(即使使用--verbose),也不會創建新分支。

編輯:只是要清楚:我完全理解git如何與遙控器配合使用。我只是好奇這種替代語法git fetch path/to/remotegit fetch <url>。它應該如何工作?爲什麼它不創建新的分支機構?爲什麼即使在詳細模式下也能靜默運行?用途是什麼?

回答

1

我認爲最好的解釋(比文檔好得多)是answer to another questionJakub Narębski

基本上是:

git fetch <path> 

只是獲取遠程的分支HEAD,並將其存儲到本地FETCH_HEAD

git fetch <path> <branch> 

獲取遠程倉庫中的分支並將其存儲在FETCH_HEAD中。

在JakubNarębski的回答中描述了更高級的用法,但是,正如他自己所說的,最好的方法是使用命名遙控器。

2

即使它在文件系統方面是「本地」,另一個存儲庫也是遠程存儲庫。

如果你想使用它,它首先添加的遠程存儲庫(即使URL是本地):在方式與同一

git remote add <name> <url> 

然後,git fetch(和其它命令)進行遠程機器上的存儲庫。

編輯: 如果從本地路徑做一個簡單的git fetch,它創建了一個新的僞分支稱爲FETCH_HEAD。您可以使用檢查出來的一個新的分支,例如:

git checkout -b new_branch FETCH_HEAD 
+0

你沒有明白。我瞭解git fetch如何與指定的遠程一起使用。我*不知道如何直接從路徑(或網址)獲取時如何工作。 – 2010-09-30 09:49:27

+0

@Olivier,對不起,我剛剛編輯了我的答案,談論'FETCH_HEAD'。 – Bruno 2010-09-30 09:56:24

0

你必須明確地傳遞給refspecgit fetch得到遠程分支。 git help fetch應該有所幫助。

+0

那麼在不指定refspec的情況下使用「git fetch path」的意義何在?爲什麼「詳細」選項不起作用? – 2010-09-30 13:52:59