提要:項目用的gitlab勒魔,手動在管理后臺只能新建刪除以及合并master分支鞋诗,并不能合并2個有沖突的分支挺峡,所以還得用命令行
1砂蔽,先檢出項目到一個文件夾
git clone
2脊阴,你檢出的項目默認(rèn)是master豁陆,所以現(xiàn)在要查看遠(yuǎn)程全部分支
git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/v1.2
remotes/origin/master
remotes/origin/v1.1
remotes/origin/v1.0
git 檢出遠(yuǎn)程分支
git checkout -b 本地分支名x origin/遠(yuǎn)程分支名x
使用該方式會在本地新建分支x扭吁,并自動切換到該本地分支x端圈。
git fetch origin 遠(yuǎn)程分支名x:本地分支名x
使用該方式會在本地新建分支x,但是不會自動切換到該本地分支x魁莉,需要手動checkout睬涧。
3,切換分支
比如同時有三個人開發(fā)沛厨,1.2最早是基于1.0宙地,但是由于項目未發(fā)布,1.0,1.1,1.2全部都在同時開發(fā)逆皮,現(xiàn)在想把1.0已經(jīng)增加的功能先合并到1.2宅粥;
- 此時的步驟:check 1.2和1.0
git checkout v1.0
git checkout v1.2
- 然后再v1.2的分支基礎(chǔ)上執(zhí)行merge
git merge v1.0
表示把v1.0的代碼合到當(dāng)前分支上,如果你在master分支上執(zhí)行此命令电谣,那么就會把v1.0的代碼遷移到master
- 如果沒有報錯秽梅,那就直接提交代碼
git push origin v1.2
- 如果報錯,基本是沖突了(比如):
CONFLICT (content): Merge conflict in app/src/main/AndroidManifest.xml
Auto-merging app/build.gradle
CONFLICT (content): Merge conflict in app/build.gradle
Automatic merge failed; fix conflicts and then commit the result.
你需要去到提示的文件里把git自動標(biāo)注的版本沖突注釋掉剿牺,看你具體需要的功能進(jìn)行刪減
然后把沖突的文件git add企垦,和commit
,比如你有2個沖突文件晒来,多文件add的時候直接空格隔開
git add app/src/main/AndroidManifest.xml app/build.gradle
最后再commit
git commit -m "解決2個分支之間的沖突"
4钞诡,提交代碼
git push origin v1.2
5,搞定
參考命令:
Git鼓勵大量使用分支:
查看分支:git branch
創(chuàng)建分支:git branch <name>
切換分支:git checkout <name>
創(chuàng)建+切換分支:git checkout -b <name>
合并某分支到當(dāng)前分支:git merge <name>
刪除分支:git branch -d <name>