iOS開發(fā)中的Git流程
Git的優(yōu)點(diǎn)相信已不用我贅述,不是SVN之流能夠相提并論的。 以前多人開發(fā)的時(shí)候我還用過(guò)拖文件大發(fā)和別人合作的。- -!
我在這里不多說(shuō)一些基本命令,只教最實(shí)用的,多人開發(fā)到底怎么用Git。
場(chǎng)景
三人合作開發(fā)一個(gè)app,老大叫小明,老二叫小強(qiáng),老三叫小偉。
這時(shí)候老大去github開一個(gè)repository, 當(dāng)然,公司項(xiàng)目一般是private repo。
創(chuàng)建好之后呢。老大在這個(gè)repo分別開四個(gè)分支。 名字叫
xiaoming_gittutorial ,xiaoqiang_gittutorial ,xiaowei_gittutorial ,還有一個(gè)develop 分支。
現(xiàn)在是這樣的。
ok,現(xiàn)在老大告訴其他兩個(gè)人,把項(xiàng)目從github上clone下來(lái)。
ok,拉下來(lái)之后呢,輸入git branch ,看看本地分支有哪些。
本地只有一個(gè)master,分支?,F(xiàn)在,讓每個(gè)人分別從遠(yuǎn)程分支拉兩個(gè)分支。一個(gè)是develop ,一個(gè)是代表自己的那個(gè)分支,例如小明,就拉xiaoming_gittutorial .
輸入git fetch origin develop:develop
這個(gè)命令的意思就是拉取遠(yuǎn)程的一個(gè)叫develop的分支,并在本地創(chuàng)建一個(gè)叫develop的分支和遠(yuǎn)程的分支匹配。
全部拉完之后我們?cè)倏纯幢镜赜心男┓种Я恕?
我們做完了前期準(zhǔn)備工作,接下來(lái)怎么保證多人協(xié)作的時(shí)候盡量少出現(xiàn)merge conflict和污染主分支
做到以下幾點(diǎn),其實(shí)就不容易出現(xiàn)大的紕漏。
- 做好分工,特別是storyboard和xib多種,盡量避免出現(xiàn)多人修改同一個(gè)文件。
- 每個(gè)人的所有開發(fā)工作都只在自己的分支開發(fā)。例如小明開發(fā),你就在本地切換到自己的
xiaoming_gittutorial 分支然后進(jìn)行開發(fā)。
- 每個(gè)人只允許在自己的分支直接push遠(yuǎn)程分支。
- 合并的時(shí)候必須遵循以下條件.
- 十分重要
- 首先,本地切換到
develop 分支。
git pull
- 例如你是小明,那么在pull到遠(yuǎn)程的develop最新的內(nèi)容之后,
git merge xiaoming_gittutorial .
- 如果出現(xiàn)conflict那么清除conflict之后,commit.然后把本地develop push 到遠(yuǎn)程的develop.
- 每完成一個(gè)功能就提交一次。不要累計(jì)代碼。
這樣的流程有什么好處呢?
- 幾乎不會(huì)出現(xiàn)conflict。
- 你永遠(yuǎn)也不會(huì)污染develop分支。
- 為什么?因?yàn)槟忝看味际窃诒镜豰erge完清除了conflict之后再push會(huì)遠(yuǎn)端,那么別人更新本地develop分支,再合并的時(shí)候,就算出現(xiàn)conflict也只會(huì)是自己最新代碼產(chǎn)生的conflict。
最后我們?cè)倮砬逡幌滤悸贰?
1.正式開發(fā)的時(shí)候每個(gè)人本地只需要有兩個(gè)分支。一個(gè)叫develop,一個(gè)是自己的那個(gè)分支。 2.每個(gè)人可以直接push自己的分支。但是push develop分支的時(shí)候。必須先pull 最新的遠(yuǎn)程develop分支。然后和本地分支合并,清除conflict之后再push。
大家可以實(shí)踐一下。有任何問(wèn)題請(qǐng)留言。
如果你認(rèn)為這篇文章不錯(cuò),也有閑錢,那你可以用支付寶掃描下方二維碼隨便捐助一點(diǎn),以慰勞作者的辛苦
|