2014-03-31 145 views
0

我建立了一個GitHub項目(origin)。GitHub的git結賬

然後,我將這個回購複製到一堆不同的機器(例如我的本地計算機,生產環境,臨時環境等)。

我在本地機器上進行更改,然後推送到origin

最終,我將我的開發分支合併到origin/master中。

然後我想把這些變化從origin/master拉到我的生產環境中,所以;

[email protected]$ git --version 
git version 1.7.9.5 
[email protected]$ git remote 
origin 
[email protected]$ git branch -r 
    origin/HEAD -> origin/master 
    origin/master 
    ... 

從這裏,我試過了一切;

git fetch 
git checkout master 
---------------------------------- 
git checkout origin/master 
---------------------------------- 
git checkout -b origin/master HEAD 

但他們都沒有工作(即,變化從未體現)。直到我沒有

git pull origin master 

它終於工作。但我不明白爲什麼我不能只檢查主人?一切我讀的SO說,使用checkoutgit checkout remote branch) - 我不明白這一點:S

回答

1

git fetch獲取對象和更新遠程origin/master;它不會更改任何本地分支機構。要經過取合併origin/mastermaster,你可以使用merge

git merge origin/master 

git pull只是一個git fetch加上git merge。你通常甚至不需要指定分支和遠程名稱;如果你設置了上游的分支origin,你可以運行:

git pull 

,它會假設你的意思,以獲取當前分支的上游,並將其合併到當前分支。

+0

感謝您的回覆。我想我明白了 - 但爲什麼我不能檢出origin/master?也許做一個「拉」是正確的方法,但現在我只是好奇爲什麼我不能結賬? – Joney

+0

@Joney:你應該可以查看'origin/master',但是你會進入「detached HEAD」狀態,並且你所做的改變不會自動反映到'master'上。 (你在那個時候並不是'主人'。) – Ryan

+0

我以前見過分離的HEAD消息。什麼是正確的git命令來做到這一點? – Joney