2013-03-12 23 views
7

我還是Github的新手,雖然我處於必須積極使用的位置。「git pull origin master」怎麼沒有真正改變我電腦目錄中的文件?

無論如何,我用「git pull upstream master」爲我正在處理的項目提取和合並最新的代碼。我認爲這個命令會更新我電腦上的實際文件(出現在目錄中的文件等),但是沒有任何反應。

當然,控制檯提到了許多改變,但沒有一個似乎發生過。作爲一個實驗,我甚至刪除了其中一個文件的所有內容,然後重新調整,看看是否會發生變化,但我已經「已經達到最新」。

如果有幫助,我在git branch -v類型的,並且得到了以下內容:

* master a2e10a4 [ahead 29] git workflow experiment 

此外,git status給出如下:

# On branch master 
# Your branch is ahead of 'origin/master' by 29 commits. 
# 
nothing to commit (working directory clean) 

最後一點,我唯一的分支是高手。

這是怎麼回事,我如何得到「拉」更改顯示在我的目錄/計算機上?

謝謝。

回答

3

我懷疑主是不是跟蹤upstream/master(如in here),這意味着,一個git pull upstream master只有獲取upstream提交,但不合併什麼。
你可以手動合併:git merge upstream/master

另外,upstreamorigin,並master領先從origin/master:沒什麼拉這裏,只有29個新提交推到原點(這應該是你的叉子,那是從上游的克隆上GitHub的服務器端:見「What is the difference between origin and upstream in github」)。

fork and upstream

3

你鍵入的命令是git pull upstream master。該命令獲取,然後合併從上游更改爲您的本地分支。

git status消息指示上游中的所有內容都已與本地主服務器合併。但你還沒有你的變化,但遠程。換句話說,您已經將更改提交到本地存儲庫,但您尚未將它們推送到遠程。在像git這樣的分佈式VCS中,commitpush不是一回事。

類型git push origin master將您的更改發送到上游遠程。這將使所有內容同步。

如果這不起作用,您可能需要重新綁定本地存儲庫。要在本地工作中重新組合遠程原點,請鍵入git pull -r origin master。然後輸入git push origin master

如果您不確定是否準備推送,您可以隨時使用git push origin master --dry-run進行空運行,並且您的所有更改都不會被推送。

+1

另一個工具,你可能會發現有用的這個shell腳本由William Morgan [git-wtf](http://git-wt-commit.rubyforge.org/#git-wtf)編寫。它提供了跟蹤分支如何與遠程服務器相關的摘要。 – 2013-03-19 14:49:28

+1

'git pull -r origin master'爲我工作。謝謝 – 2017-05-29 11:19:23

相關問題