Git建立branch 與 解決分支衝突

因爲以前寫一個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

會產生分支衝突。

  1. 這個時候能夠先使用git的自動智能合併
git pull
  1. 若是提示失敗,那麼這個時候能夠本身手動解決分支衝突(就是本身按照git在文件中的提示刪除master分支或者本身建立的分支的內容),而後再將這個改動提交
    咱們可使用帶參數的一個log命令看到中間的一個過程
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分支上合併就能夠了。

因此,團隊合做的分支看起來就像這樣:

到這裏差很少把平時踩過的坑都寫了一遍
參考資料:廖雪峯的博客

相關文章
相關標籤/搜索