2017-08-25 56 views
1

我會認爲git checkout -b mylocal origin/develop將意味着mylocal會從遠程服務器獲得最新的代碼,但它不會(git log不顯示我知道的提交在遠程服務器上的提交) - 它只是在後續的拉動中,mylocal擁有所有這些提交。這是預期的嗎?遠程分支的git checkout沒有給出最新版本?

+2

是的。你需要做一個git fetch或者git pull以獲得來自遠程的最新變化 –

+0

你可以試着用'git pull' – Hackerman

+0

當我懷疑我使用[this git cheat sheet](http://ndpsoftware.com/git -cheatsheet.html)。點擊每個部分查看相關命令 –

回答

2

這是可以預料的,是的。

你要明白,origin/develop是在遠程服務器上分支發展當地的副本發展遠程服務器上分支。這意味着,在您看到新的更改之前,您需要使用git fetch來更新遠程分行的本地副本。

+0

so *第一次*,我會得到最新的但隨後結賬我得到本地版本,對不對? – Jeff

+0

如果通過「第一次」,你的意思是「git clone」,那麼是的,克隆獲取最新的狀態。在你'git clone'或任何後來的'git fetch'或'git pull'之後進行的所有更改都不可見,直到你再次執行git fetch或git pull,這包括提交,分支,標記等等上。 – tkausl

+0

在這種情況下,git fetch或pull會有什麼區別,並且會按照我使用的git checkout -b mylocal origin/develop跟着git pull或git fetch?我也可以git checkout origin /開發git fetch然後git checkout -b mylocal origin/develop(或者git pull而不是git fetch),並且在任何情況下,這些不同的方式在結果上並不完全相同嗎? – Jeff