參考了網上的各類資料,對Git多人協做有所瞭解,寫下此篇筆記,理理本身的思路html
我這裏只介紹分支,通常項目中,有下面幾種分支git
master分支是主分支,通常是由項目經理(負責人)進行管理,通常咱們都沒法修改其中的內容github
develop分支則是在master分支分出來,咱們以develop分支做爲基本,分出咱們的本身須要開發的功能分支,也就是feature分支,以後進行項目的某些功能開發。單元測試
開發完以後,與develop分支進行合併,由管理develop分支的開發者進行代碼審查和單元測試,而後發送一個更新到master分支的請求給項目經理。測試
項目經理再次進行代碼審查和單元測試,肯定無誤以後就把develop分支合併到master分支上編碼
master分支,即主分支。任何項目都必須有個這個分支。對項目進行tag或發佈版本等操做,都必須在該分支上進行。code
develop分支,即開發分支,從master分支上檢出。orm
團隊成員通常不會直接更改該分支,而是分別從該分支檢出本身的feature分支,開發完成後將feature分支上的改動merge回develop分支。同時release分支由此分支檢出。htm
release分支,即發佈分支,從develop分支上檢出。blog
該分支用做發版前的測試,可進行簡單的bug修復。若是bug修復比較複雜,可merge回develop分支後由其餘分支進行bug修復。此分支測試完成後,須要同時merge到master和develop分支上。
feature分支,即功能分支,從develop分支上檢出。
團隊成員中每一個人都維護一個本身的feature分支,並進行開發工做,開發完成後將此分支merge回develop分支。此分支通常用來開發新功能或進行項目維護等。
fix分支,即補丁分支,由develop分支檢出,用做bug修復,bug修復完成需merge回develop分支,並將其刪除。因此該分支屬於臨時性分支。
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 branch --set-upstream-to <branch-name> origin/<branch-name>