本地分支處理問題的過程中一般都是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...