git 經常使用的分支技巧

分支branch做爲git一個強大功能,在平時開發若是可以善加使用,定能成倍提高開發效率。html

1.分支開發模式

主分支master上通常是穩定版本,須要保證隨時都能發佈。git

因此,能夠創建一個開發分支用於開發新功能。測試

git branch dev

查看有哪些分支3d

git branch -a
* dev
  master
  bugfix-1
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/dev
  remotes/source/master

查看本地有哪些分支code

git branch
* dev
  master
  bugfix-1

查看遠程有哪些分支orm

git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/dev
  source/master

當一個開發分支上的新功能已經開發完成,並測試OK,此時,能夠合併到master.htm

當前在master分支上,使用以下命令進行合併:blog

git merge dev --no-ff -m "AI2.0開發完成"

強烈建議使用--no-ff選項,這樣,當合併到主分支的時候,會生成一個提交記錄。圖片

若是合併到主分支後須要回滾,直接找到剛纔合併時的提交記錄,進行回滾便可。開發

尤爲是在主分支和dev分支交叉提交記錄的時候,若是不使用--no-ff,須要挨個找哪一個記錄是在dev分支上提交的,會比較麻煩。

默認狀況下,Git執行"快進式合併"(fast-farward merge),會直接將Master分支指向Develop分支。

兩種合併方式以下圖所示。

fast-farward
在這裏插入圖片描述
no-fast-farward

在這裏插入圖片描述

2. 比較兩個分支的差別

在開發分支上提交了不少內容,這個時候,若是須要比較開發分支與主分支的差別,可使用如下方法:

2.1 查看兩個分支差別的文件

git diff branch1 branch2 --stat

例如,查看dev分支相對於master的改動文件:

git diff master dev  --stat

2.2 查看兩個分支具體差別的內容

git diff branch1 branch2

3.查看提交歷史及分支合併狀況

用 oneline 或 format 時結合 --graph 選項,能夠看到開頭多出一些 ASCII 字符串表示的簡單圖形,形象地展現了每一個提交所在的分支及其分化衍合狀況。

git log --pretty=oneline --graph
*   7880521e21b1329965179bd45d632a3c91e227fa (HEAD -> master) Merge branch 'dev'
|\
| * 27cc24423ba0fcb01365eb7ffdc9ed33b059c36b (dev) 3 test
| * 714788192eb4760b614c2ab5fe45634df89904ee 2 test
* | ccce2c06660d8263e6a65d124ab947db0be56556 2 txt
|/
* 24c3941c7f5ef3e6b0c0be7638d29387f4643d90 1 test
git log --pretty=format:"%h %s" --graph
*   7880521 Merge branch 'dev'
|\
| * 27cc244 3 test
| * 7147881 2 test
* | ccce2c0 2 txt
|/
* 24c3941 1 test
(END)

*表明是在哪一個分支提交的。

4.參考

git提交歷史
git分支管理策略

相關文章
相關標籤/搜索