參考了網上的各種資料,對Git多人協作有所了解,寫下此篇筆記,理理自己的思路
概念介紹
我這里只介紹分支,一般項目中,有下面幾種分支
- master分支
- develop分支
- release分支
- feature分支
- fix分支
- hotfix分支
master分支是主分支,一般是由項目經理(負責人)進行管理,一般我們都無法修改其中的內容
develop分支則是在master分支分出來,我們以develop分支作為基本,分出我們的自己需要開發的功能分支,也就是feature分支,之后進行項目的某些功能開發。
開發完之后,與develop分支進行合並,由管理develop分支的開發者進行代碼審查和單元測試,然后發送一個更新到master分支的請求給項目經理。
項目經理再次進行代碼審查和單元測試,確定無誤之后就把develop分支合並到master分支上
master分支
master分支,即主分支。任何項目都必須有個這個分支。對項目進行tag或發布版本等操作,都必須在該分支上進行。
develop分支
develop分支,即開發分支,從master分支上檢出。
團隊成員一般不會直接更改該分支,而是分別從該分支檢出自己的feature分支,開發完成后將feature分支上的改動merge回develop分支。同時release分支由此分支檢出。
release分支
release分支,即發布分支,從develop分支上檢出。
該分支用作發版前的測試,可進行簡單的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
團隊協作的流程:
- 首先,可以試圖用git push origin
推送自己的修改; - 如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合並;
- 如果合並有沖突,則解決沖突,並在本地提交;
- 沒有沖突或者解決掉沖突后,再用git push origin
推送就能成功! - 如果git pull提示no tracking information,則說明本地分支和遠程分支的鏈接關系沒有創建,用命令
git branch --set-upstream-to <branch-name> origin/<branch-name>
