git - 切換到哪個分支,本地就下載了哪個分支的程式碼嘛?
为情所困
为情所困 2017-05-02 09:33:50
0
6
782

切換到哪個分支,本地就下載了哪個分支的程式碼嘛?

为情所困
为情所困

全部回覆(6)
PHPzhong

如果是大家一起協作的情況,可能其他人推了其他分支到中央倉庫,這時候你本地是看不到的。
例如原來只有master分支,另外一个人推送了f1分支。
這時在你的本地,

λ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

直接執行切換分支到f1

λ git checkout f1
error: pathspec 'f1' did not match any file(s) known to git.

當然是不行的啦。
那該怎麼做呢?

你可以把中央的分支資訊取下來

λ git fetch origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://git.coding.net/xxx/xxx
 * [new branch]      f1         -> origin/f1

λ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/f1
  remotes/origin/master

這樣你就能愉快地切換分支了

λ git checkout f1
Branch f1 set up to track remote branch f1 from origin.
Switched to a new branch 'f1'

此時你已經在f1分支了,

λ git branch -a
* f1
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/f1
  remotes/origin/master

*在前面表示本地目前所指向的分支。

PHPzhong

好像是的,你可以切一下

某草草

具體程式碼是怎麼儲存的不確定,沒研究過。但是切換這個功能,應該不是下載全部程式碼。應該是先偵測本地程式碼,然後把本地沒有的程式碼下載下來,本地有的程式碼不下載。如果你細心觀察,一個專案的程式碼量大的時候,你初次克隆需要好多時間,但是切換分支則速度快很多。雖然程式碼和分支保持一致,但是感覺並不是每次都重新下載所有程式碼。

某草草

除非你本地是最新的,如果不是還是需要你自己執行git pull origin 分支才可以同步到對應分支下最新版本的

伊谢尔伦

本地有所有的分支代碼啊,每個人的倉庫都是對各個分支版本的clone,完全一樣的,要不怎麼叫clone呢。

左手右手慢动作

切換完分支後,需要從伺服器拉去最新程式碼

git pull origin xxx分支名称
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板