git branch -r #查看遠程分支 git branch -a #查看全部分支,本地和遠程 git remote show [remote-name] #查看遠程倉庫信息
其中git remote show [remote-name]展現的信息包括:git
git checkout -b local origin/daily/dev
上面的方法能夠直接檢出遠程分支到本地,在本地新建local分支,並切換到local分支上,注意本地分支和遠程分支不一樣名。shell
這個方法會自動建立遠程分支 /daily/dev
和本地分支local
的跟蹤關係, 經過git remote show origin
能夠看到包含以下信息:服務器
Local branches configured for 'git pull': local merges with remote /daily/dev master merges with remote master Local ref configured for 'git push': master pushes to master (up to date)
其中
Local branches configured for 'git pull':
下的就是upstream
跟蹤分支。工具
能夠看出,遠程分支 /daily/dev
和本地分支local
創建了git pull
的關係,可是沒有創建git push
的關係。此時若是強行push,不會成功,會出現以下提示:gitlab
fatal: The current branch new has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin develop
咱們知道經過git clone git@gitlab.xxx.com:xxxxx.git
能夠創建默認的本地master分支和遠程master分支的pull和push的關係,可是咱們沒法經過clone命令檢出非master分支,那麼對於非master分支怎麼辦呢?code
Git中push.default
能夠指定在沒有明確指定遠程分支的狀況下,默認push的遠程分支,其取值能夠是:blog
central / non-central workflows 是Git的兩種常見工做流場景:rem
在Git 2.0以前,push.default
的內建值被設爲'matching',2.0以後則被更改成了'simple'。get
在瞭解push.default以後,咱們有以下幾種比較好的從遠程分支檢出本地分支的方法(基於V2.0+):workflow
因此若是你只有一個遠程倉庫,且你想檢出的分支名稱和遠程分支不一樣名(有些管理工具會自動生成比較醜的遠程分支名,相似:/features/2017-03-31-featuresA-1),那麼你能夠經過設置push.default 默認推送到pull的遠程分支(upstream 分支):
#檢出重命名 git checkout -b dev origin/features/2017-03-31-featuresA-1 #設置push.default爲upstream git config --global push.default upstream #or git config push.default upstream #取消設置 git config --unset push.default
若是不想經過修改upstream,那麼只能經過設置檢出本地分支名稱和遠程分支名稱相同:
git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>
注意:若是使用git checkout -b features/feature_1 origin/features/feature_1
檢出,那麼遠程分支名稱是features/feature_1
,而不是origin/features/feature_1
。
這個也不算什麼解法,可是強烈推薦,就是創建遠程分支的時候,取個好點的名字。
git clone git@gitlab.xxx.com:xxxxx.git #從master創建新分支 git checkout -b dev #push並創建同名遠程分支 git push origin dev