Git多人協做

參考了網上的各類資料,對Git多人協做有所瞭解,寫下此篇筆記,理理本身的思路html

概念介紹

我這裏只介紹分支,通常項目中,有下面幾種分支git

  • master分支
  • develop分支
  • release分支
  • feature分支
  • fix分支
  • hotfix分支

master分支是主分支,通常是由項目經理(負責人)進行管理,通常咱們都沒法修改其中的內容github

develop分支則是在master分支分出來,咱們以develop分支做爲基本,分出咱們的本身須要開發的功能分支,也就是feature分支,以後進行項目的某些功能開發。單元測試

開發完以後,與develop分支進行合併,由管理develop分支的開發者進行代碼審查和單元測試,而後發送一個更新到master分支的請求給項目經理。測試

項目經理再次進行代碼審查和單元測試,肯定無誤以後就把develop分支合併到master分支上編碼

master分支

master分支,即主分支。任何項目都必須有個這個分支。對項目進行tag或發佈版本等操做,都必須在該分支上進行。code

develop分支

develop分支,即開發分支,從master分支上檢出。orm

團隊成員通常不會直接更改該分支,而是分別從該分支檢出本身的feature分支,開發完成後將feature分支上的改動merge回develop分支。同時release分支由此分支檢出。htm

release分支

release分支,即發佈分支,從develop分支上檢出。blog

該分支用做發版前的測試,可進行簡單的bug修復。若是bug修復比較複雜,可merge回develop分支後由其餘分支進行bug修復。此分支測試完成後,須要同時merge到master和develop分支上。

feature分支

feature分支,即功能分支,從develop分支上檢出。

團隊成員中每一個人都維護一個本身的feature分支,並進行開發工做,開發完成後將此分支merge回develop分支。此分支通常用來開發新功能或進行項目維護等。

fix分支

fix分支,即補丁分支,由develop分支檢出,用做bug修復,bug修復完成需merge回develop分支,並將其刪除。因此該分支屬於臨時性分支。

hotfix分支

hotfix分支,即熱補丁分支。

和fix分支的區別在於,該分支由master分支檢出,進行線上版本的bug修復,修復完成後merge回master分支,並merge到develop分支上,merge完成後也能夠將其刪除,也屬於臨時性分支。

多人協做流程

開發步驟:

1.設置編碼

去Android Studio的editor->file encodings修改編碼爲utf-8格式


2.克隆代碼

使用Android Studio下載源碼

以後在輸入框中輸入項目的github地址便可自動下載

3.建立分支

下面的代碼是建立一個分支,並切換到分支

git checkout -b 分支名(任取)

4.提交、上傳、合併

# 以後在你本身建立的分支上進行功能的開發,完成了一個或多個功能均可以輸入下面的命令進行保存
# 開發功能過程當中,add和commit這兩個命令就能夠無限循環,寫完一個功能來一次
git add .
git commit -m "說明(大概說一下實現了什麼功能)"
# 推送到遠端,實際也是至關於作一個備份,不須要常常執行
git push origin 分支名(第3步中的取的分支名)


# 更新本地的dev,保持與最新的一致
git checkout dev
git pull
# 合併操做
# 這一步可能會出現衝突,須要進行衝突處理,衝突處理完以後從新執行add和commit命令
git merge --no-ff 分支名(第3步取的分支名) 
# 推送合併好的dev分支到遠端,供別的開發者更新
git push origin dev
# 以後切換到你本身的分支,再次進行開發
git checkout 分支名

若是合併出現了衝突錯誤,本身修改一下出現衝突的那些文件

衝突文件的格式以下:

<<<<<<< HEAD
ln -s ../statics xxx
=======
ln -s ../statics statics
>>>>>>> dev

<<< head=======就是你分支中代碼,而=======<<< dev則是dev分支中的代碼,根據本身的要求保留。

假如我要保留我分支的代碼,則照下面的格式刪除其餘內容

<<<<<<< HEAD (刪除)
ln -s ../statics xxx (保留)
======= (刪除)
ln -s ../statics statics (刪除)
>>>>>>> dev (刪除)

若是git pull提示no tracking information,則說明本地分支和遠程分支的連接關係沒有建立,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

git branch --set-upstream-to dev origin/dev

團隊協做的流程:

  1. 首先,能夠試圖用git push origin 推送本身的修改;
  2. 若是推送失敗,則由於遠程分支比你的本地更新,須要先用git pull試圖合併;
  3. 若是合併有衝突,則解決衝突,並在本地提交;
  4. 沒有衝突或者解決掉衝突後,再用git push origin 推送就能成功!
  5. 若是git pull提示no tracking information,則說明本地分支和遠程分支的連接關係沒有建立,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

git+github 團隊協做

相關文章
相關標籤/搜索