Merge types
- fast-forward (常用)
- Non fast-forward
- recursive(常用) /ort
- octopus
- ours
- subtree
快速合併
兩個分支一前一後,沒有分叉,快速分支不會建立一個合併節點。
合併更改但是不合並分支
使用 --squash
將feature分支上所有更改複製到當前的暫存區 並使用提交。實現非合併或獲取更改
#------------------- 合併更改 -------------------------
git merge --squash feature
Updating d160c4f..cb7113a
Fast-forward
Squash commit -- not updating HEAD
feature/f1.txt | 0
feature/f2.txt | 0
2 files changed, 0 insertions(+), 0 deletions(-)
git: 'loh' is not a git command. See 'git --help'.
#------------------- commit -------------------------
git commit -m "merge feature"
[master 793e85d] merge feature
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 feature/f1.txt
create mode 100644 feature/f2.txt
# log
commit 793e85deff025ea3ee55cf203afa2876f668142e (HEAD -> master)
Author: x
Date: x
merge feature
commit d160c4f0d6924df2ccd07f1107a462b41f0af039
Author: x
Date: x
“m2
非快速合併
如果兩個分支都有進行提交,此時需要建立一個合併節點。也是使用
# 處於 main 分支
git merge --no-ff feature
此時同樣可以使用 --squash
引數在不合並分支的前提下,在當前分支新增修改
git merge --squash feature