從前做項目都是習慣在一個分支之中進行不斷的pull、add、commit以及push。由於嫌麻煩不想建立別的分支,一直在master分支下進行開發。今天代碼跟隊伍裏其他同學的發生了衝突,差點把整個庫給搞炸。遂研究一下git的正確使用方式。
.gitignore
一定要記得配置好.gitignore,能給你省去很多很多的衝突,懂的都懂。
什麼IDE的配置文件,一定要給他放進去。
分支
一. 多人同時開發同一個分支
代碼提交的錯誤步驟:
git add
git commit
git push
代碼提交的正確步驟:
git add
git commit
git pull
git push
需要注意,不要在commit之後直接push;最好是先pull一下,把遠程的git倉庫裏的代碼版本pull下來,保證自己push上去的跟遠程倉庫不會衝突。
實際上,如果你本地的代碼跟遠程倉庫中的代碼很不幸的發生了衝突,他會給你報錯,不讓你直接pull;解決起來也非常麻煩。
詳解緣由的話,可以看看這一篇https://blog.csdn.net/Sweet__Cat/article/details/79397629
二. 在不同的分支上進行開發
今天下午和組裏的同學一起試驗了先開不同的branch,修改各自的branch然後最後一起merge的開發方式。
正常的項目會有一個master分支;基本的對代碼的修改都在master分支下進行。在增加新功能的時候,推薦新建一個開發分支;在這個開發分支上進行開發。而master分支上,存放着開發好的、穩定的版本。
- 想建立新功能,new一個新功能的開發分支;
- 多人開發時,每個人還可以分出一個自己的個人開發分支,當階段性工作完成後應該合併到上級分支。
也就是說,可以以“開發功能”爲單位建立分支,也可以以“個人開發”爲單位建立分支。
IDEA下的分支操作:
- 新建分支。比方說命名爲test。
這樣就可以在本地,以master分支爲藍本,創建一個跟master一模一樣、名叫test的分支。圖二中有一個勾選框,問你是否要“checkout branch”。如果你勾選了這個選項,就會在創建完之後自動幫你轉換到新創建的分支。(checkout branch就是切換分支的功能。)
2. 接下來在test分支之中進行更改(開發)。
然後就可以在這個分支上進行add commit pull push四連,推進分支的開發。
-
開發完成了,想將這個分支合併回master分支。現在點擊IDEA右下角的分支切換,checkout到master分支。注意checkout之後最好pull一下master分支,保持master分支爲最新的狀態。
在master分支下再次進入這個分支切換的菜單,選擇test分支;將test分支合併到master分支
點擊即可進行兩個分支的合併。如果test分支下的文件和master分支下的文件有衝突的話,他會彈出來對話框讓你手動merge;如果test分支比master分支只多不少,就會自動給你把多的添加進去,不會讓你手動merge。 -
將本地的、merge了test分支的master分支pull到遠程倉庫。
我們可以看到,這個菜單裏有兩類:本地的分支和遠程倉庫的分支。我們剛纔第三步的操作其實只是在本地完成了兩個branch的合併;下一步就是將本地的master的狀態同步到遠程倉庫(Remote Branches)中的master分支去。只需要在master分支下進行pull-push操作就行了。 -
及時刪除掉用完的、不用的分支。