因爲以前寫一個Spring項目的時候是本身和一位大佬一塊兒協做的,在中間差點由於個人git命令不熟悉而致使個人本地分支錯誤合併。這裏仔細寫一下git建立分支時候的一些坑和解決分支衝突時候的一些方法。
先寫一下一些比較經常使用的命令git
版本回退命令指針
git reset --hard 版本號
版本回退後後悔了怎麼辦?
先code
git reflog
查看將來的版本號
而後blog
git reset --hard 版本號
想要讓git log --graph看到的東西更好看
不妨使用圖片
git rebase branch
你會有一些驚喜的發現
下面進入正文開發
咱們可使用get
git checkout -b dev
建立一個名爲dev的分支, 並將HEAD指針指向dev分支博客
這須要加入一個-b參數團隊協作
它的效果等同於it
git branch dev git checkout dev
而分支的意義在於當使用git來進行團隊協做的時候,咱們須要各自獨立實現本身的所負責的功能,可是很顯然咱們不能夠把全部工做都放到master分支中,這就是咱們的建立分支的必要,每一個人將本身建立的分支中進行分支合併到master主分支。
咱們使用
git merge branch
合併分支,
接着咱們能夠放心的刪除dev分支了,咱們使用
git branch -d dev
刪除dev分支
當master的版本高於分支的版本的時候這個時候合併分支
git merge branch_name
會產生分支衝突。
git pull
git log --graph
個人實驗過程是這樣的
一般合併分支是,Git會使用Fast Forword模式,可是這個模式在刪除這個分支後就會丟掉這個分支信息。因此若是強制禁用Fast Forword模式,git就會在merge的時候生成一個新的commit
咱們使用
git merge --no-ff -m "logs here" branch_name
這個咱們這個分支合併動做就會做爲一次commit從而記錄在master了.
在實際開發中,咱們應該按照幾個基本原則進行分支管理:
首先,master分支應該是很是穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,好比1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本;
你和你的小夥伴們每一個人都在dev分支上幹活,每一個人都有本身的分支,時不時地往dev分支上合併就能夠了。
因此,團隊合做的分支看起來就像這樣:
到這裏差很少把平時踩過的坑都寫了一遍
參考資料:廖雪峯的博客