git merge的引數 squash的用處

2021-09-30 11:22:55 字數 659 閱讀 9627

本地分支處理問題的過程中一般都是commit在本地分支,當驗證完畢後就需要merge到baseline上。

在不懂merge的--squash這個引數前,我一般是這麼操作的:

1.在本地分支"abc"上通過多次commit把問題修復;

2.repo sync一把,同步最新baselien到本地,這時也會自動從"abc"跳到"no branch"上,

這個"no branch"就是伺服器的最新**。

3.git log,記下最新**分支的commit 號(即雜湊值),假設為:sd55fa65ds54af。

4.在剛才的"no branch"上執行git merge 「abc」,把所有"abc"分支上的commit全部合到"no branch"上

5.這時候再git log檢視下,發現多了許多之前commit的記錄,這些記錄有時候很瑣碎,沒必要加到baseline上,

所以我需要git reset --soft sd55fa65ds54af回退一下,然後再git commit -m新增新的message。

6.然後再git push

當有了--squash引數後,5、6兩步可以省去大部分操作,如下:

4.git merge --squash abc

5.git commit -m新增message

直接ok!

git merge 命令的使用

我們把dev分支的工作成果合併到master分支上 git merge dev updating d46f35e.b17d20e fast forward readme.txt 1 1 file changed,1 insertion git merge 命令用於合併指定分支到當前分支。若果合併後要...

git merge和rebase的區別

git merge 會生成乙個新得合併節點,而rebase不會 比如 d e test a b c f master 使用merge合併 d e a b c f g test,master 而使用rebase則 a b d e c f test,master 使用git pull時預設是merge,...

git merge和rebase的區別

一直以來都以為rebase是合併衝突的一種手段,和merge一樣的,有哪個都行。今天才決定把他們搞懂了。我是有多麼的懶。git merge 會生成乙個新得合併節點,而rebase不會 d e test a b c f master 使用merge合併後 d e a b c f g test,mast...