天天看點

git分支開發使用

背景

git支援很多種工作流程,我們采用的一般是這樣,遠端建立一個主分支,本地每人建立功能分支,日常工作流程如下:

去自己的工作分支

$ git checkout work

工作

....

送出工作分支的修改

$ git commit -a

回到主分支

$ git checkout master

擷取遠端最新的修改,此時不會産生沖突

$ git pull

回到工作分支

$ git checkout work

用rebase合并主幹的修改,如果有沖突在此時解決

$ git rebase master

$ git checkout master

合并工作分支的修改,此時不會産生沖突。

$ git merge work

送出到遠端主幹

$ git push

這樣做的好處是,遠端主幹上的曆史永遠是線性的。每個人在本地分支解決沖突,不會在主幹上産生沖突

變基過程中常用的幾個指令

例如我們需要将iss33變基到master分支上,使用指令

git checkout iss33;git rebase master

,此時會進入rebase模式,如果iss33和master分支中的送出有沖突,需要手動合并檔案解決,解決沖突後使用

git add

表示沖突已經解決,

git rebase --continue

表示繼續下一個沖突,

git rebase --skip

表示跳過目前沖突,

git rebase --abort

表示退出rebase模式,回到運作

git rebase master

指令之前的狀态。