
分享是最好的記憶--如需轉(zhuǎn)發(fā)請(qǐng)注明出處[強(qiáng)調(diào)]:共同學(xué)習(xí) 共同進(jìn)步 不喜勿噴
Git 小團(tuán)隊(duì)的協(xié)作 (二)
小團(tuán)隊(duì)如何利用git協(xié)作開發(fā)呢?對(duì)此我想總結(jié)一下自己的經(jīng)驗(yàn),
也算是記個(gè)筆記吧。
我想通過情景設(shè)定的方式,通俗易懂的解釋效果會(huì)更好一點(diǎn),也比較貼近實(shí)際開發(fā)過程。
在創(chuàng)建倉庫時(shí)分好分支,對(duì)此不太了解的同學(xué)可以看下Git 小團(tuán)隊(duì)的協(xié)作 (一)
情景設(shè)定
| 人物 | 角色 | 權(quán)限 |
|---|---|---|
| 小黑 | 項(xiàng)目經(jīng)理 | 管理者 |
| 小白 | 項(xiàng)目成員 | 開發(fā)者 |
流程
小黑創(chuàng)建項(xiàng)目
小白fork項(xiàng)目
小白clone他fork的項(xiàng)目到本地
小白從這個(gè)項(xiàng)目的
develop分支分出一個(gè)功能分支:feature/login小白在
feature/login分支上完成任務(wù)后到代碼托管平臺(tái)建立Pull Request提示小黑合并他的功能小黑review小白的代碼,沒有問題,合并后關(guān)閉
Pull Request小白看到自己代碼被合并后,刪除功能分支
feature/login繼續(xù)下一個(gè)功能
這里引申一下fork和clone的作用
fork
fork某人的項(xiàng)目之后,我們就能獲得跟原倉庫一毛一樣的倉庫。
clone
不用多說,克隆遠(yuǎn)程項(xiàng)目。
fork 和 clone 的區(qū)別
如果說你 clone 了別人的倉庫,偷偷的寫了一個(gè)BUG想搞原作者,想多了,你提交不到原作者的倉庫。
如果說你fork了別人的倉庫,你就能獲得一個(gè)跟原作者一毛一樣的倉庫,這時(shí)你還想偷偷寫以個(gè)BUG搞原作者,
這時(shí)你可以推送,但推送的是自己的克隆倉庫,還是沒有辦法對(duì)原作者造成威脅,那怎么辦呢?你要Pull Request,
讓原作者主動(dòng)合并才可以。
我們完整的走一邊小黑和小白的協(xié)作過程
詳細(xì)流程
小黑創(chuàng)建一個(gè)新項(xiàng)目:
$ git init
$ git remote add origin https://gitee.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
$ git checkout -b develop
$ git push origin develop:develop
$ git push origin master
小白fork項(xiàng)目:
首先fork項(xiàng)目
然后
$ git clone https://gitee.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
簡單的說就是:
給fork配置遠(yuǎn)程庫
使用
git remote -v
查看遠(yuǎn)程狀態(tài)
確定一個(gè)將被同步給 fork 遠(yuǎn)程的上游倉庫
git remote add upstream https://gitee.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
再次查看狀態(tài)確認(rèn)是否配置成功。
git remote -v
同步fork
從上游倉庫 fetch 分支和提交點(diǎn),提交給本地 master,并會(huì)被存儲(chǔ)在一個(gè)本地分支
upstream/master
git fetch upstream
切換到本地主分支(如果不在的話)
git checkout master
把 upstream/master 分支合并到本地 master 上,這樣就完成了同步,并且不會(huì)丟掉本地修改的內(nèi)容。
git merge upstream/master
如果想更新到 gitee 的 fork 上,直接
git push origin master 就好了,但是我們要提交到master分支上
最后進(jìn)入gitee,進(jìn)入fork的倉庫,點(diǎn)擊pull request,選擇左邊的要合并到的分支,右邊選擇自己倉庫的分支,點(diǎn)擊Create pull request發(fā)起合并請(qǐng)求,發(fā)起之前可以檢查一下自己更改的內(nèi)容
團(tuán)隊(duì)負(fù)責(zé)人審核,如果沒問題通過即可,就這樣一次協(xié)作流程完成。
我是ElyarAnwar,在技術(shù)的道路上摸爬滾打;
熱愛生活,熱愛技術(shù);如果喜歡記得點(diǎn)贊;