本地分支和遠程分支
克隆
//示例地址,不可用
//下載遠程master分支,並且本地分支名字爲master
git clone https://github.com/master-dev.git
//指定下載遠程dev分支,並且本地分支名字爲dev
git clone -b dev https://github.com/master-dev.git
創建本地分支,切換分支
假設遠程倉庫只有mater分支
git clone https://github.com/master-dev.git
此時會在本地生成一個master分支,用git branch --all
查看全部分支
git checkout -b dev //創建並選擇分支
相當於
git branch dev //創建分支
git checkout dev //選擇分支
然後
git push origin dev //這樣遠程倉庫也有一個dev分支了
此時如果直接git push 會報錯,因爲沒有創建本地dev和遠程origin/dev的關聯,
可通過git branch -vv
查看本地分支和遠程分支的關聯關係
git branch -vv
可通過git branch --set-upstream
創建關聯關係,就可以直接git push 提交
git branch --set-upstream dev origin/dev
假如遠程分支已存在,可在創建本地分支時與遠程分支關聯
git checkout -b dev origin/dev
合併分支
先切回本地master分支,然後用merge方法合併
git checkout master
git merge dev //合併本地分支
git push origin master //推送至遠程master即爲合併後的分支
刪除分支
git branch -d dev //刪除本地分支
git push origin -d dev //刪除遠程分支
一個本地分支問題
原項目在 master 分支,拉取之後創建本地dev分支,然後切換dev分支,創建一個文件
touch README.txt
vim README.txt
按s開始編輯,編輯結束按Esc , shift+: , wq , enter回車退出
切回master分支發現master分支下也有一個README.txt文件,說好的分支之間不互相印象,爲什麼dev分支下的修改也會被同步到master分支呢?
原因在於,新建文件以後,沒有commit 還只是一個本地文件,在哪都能看到,只要add 、commit後再切換回master,master分支就不顯示這個文件了,dev才真的成了一個獨立的分支,所以切換分支之前,確保當前分支沒有未提交的修改