切換到哪個分支,本地就下載了哪個分支的程式碼嘛?
如果是大家一起協作的情況,可能其他人推了其他分支到中央倉庫,這時候你本地是看不到的。 例如原來只有master分支,另外一个人推送了f1分支。 這時在你的本地,
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
*在前面表示本地目前所指向的分支。
*
好像是的,你可以切一下
具體程式碼是怎麼儲存的不確定,沒研究過。但是切換這個功能,應該不是下載全部程式碼。應該是先偵測本地程式碼,然後把本地沒有的程式碼下載下來,本地有的程式碼不下載。如果你細心觀察,一個專案的程式碼量大的時候,你初次克隆需要好多時間,但是切換分支則速度快很多。雖然程式碼和分支保持一致,但是感覺並不是每次都重新下載所有程式碼。
除非你本地是最新的,如果不是還是需要你自己執行git pull origin 分支才可以同步到對應分支下最新版本的
git pull origin 分支
本地有所有的分支代碼啊,每個人的倉庫都是對各個分支版本的clone,完全一樣的,要不怎麼叫clone呢。
切換完分支後,需要從伺服器拉去最新程式碼
git pull origin xxx分支名称
如果是大家一起協作的情況,可能其他人推了其他分支到中央倉庫,這時候你本地是看不到的。
例如原來只有
master
分支,另外一个人推送了f1
分支。這時在你的本地,
直接執行切換分支到
f1
,當然是不行的啦。
那該怎麼做呢?
你可以把中央的分支資訊取下來
這樣你就能愉快地切換分支了
此時你已經在
f1
分支了,*
在前面表示本地目前所指向的分支。好像是的,你可以切一下
具體程式碼是怎麼儲存的不確定,沒研究過。但是切換這個功能,應該不是下載全部程式碼。應該是先偵測本地程式碼,然後把本地沒有的程式碼下載下來,本地有的程式碼不下載。如果你細心觀察,一個專案的程式碼量大的時候,你初次克隆需要好多時間,但是切換分支則速度快很多。雖然程式碼和分支保持一致,但是感覺並不是每次都重新下載所有程式碼。
除非你本地是最新的,如果不是還是需要你自己執行
git pull origin 分支
才可以同步到對應分支下最新版本的本地有所有的分支代碼啊,每個人的倉庫都是對各個分支版本的clone,完全一樣的,要不怎麼叫clone呢。
切換完分支後,需要從伺服器拉去最新程式碼