git中合并分支的方式有兩種:合并(merge)和變基(rebase)
變基的意思是“改變基礎(chǔ)”
舉個例子:主分支歷史是A1->A2->A3
當(dāng)歷史進展到A2時,你的同事決定在A2上做一個測試版,他首先用將主版本軟回滾到A2 然后做個一個測試的test branch,然后在這個分支上面生成一個新歷史A4,現(xiàn)在git歷史線是這樣的:

然后他決定將這個改動A4合并到目前的主版本A3,按正常操作他可以先檢出到A3,然后merge 這樣git歷史線就是A1->A2->A3+A4
當(dāng)然他也可是使用rebase操作,這就好像把A4操作在A3操作上重放一遍,git歷史線就是A1->A2->A3->A4,然后刪除那個測試分支,然后將這個版本推送到遠程服務(wù)器上,這樣就好像他是在主分支上進行了A4的測試一樣,最后呈現(xiàn)的時間線始終是一條,很干凈
然后有一種情況盡量不要變基,就是如果測試分支上有別人進行了回滾,而你進行了變基,而他又在那個回滾的歷史上進行了新的修改或再分支,然后他也想使用變基操作,這時候主時間線就會出現(xiàn)兩個base,造成混亂。所以要進行變基操作時,除非你能確定這個分支只有你一個人處理,否則最好使用merge
這就是我對變基(邪惡♂操作)的粗淺認識