git命令之git merge和git rebase的區別

2022-03-21 04:35:27 字數 1090 閱讀 4953

1樓:福喜

git merge是用來合併兩個分支的。

# 將b分支合併到當前分支

git merge b

git cherry-pick可以選擇某一個分支中的一個或幾個commit(s)來進行操作。例如,假設我 們有個穩定版本的分支,叫v2.0,另外還有個開發版本的分支v3.

0,我們不能直接把兩個分支合併,這樣會導致穩定版本混亂,但是又想增加一個v3.0 中的功能到v2.0中,這裡就可以使用cherry-pick了。

# 先在v3.0中檢視要合併的commit的commit id

git log

# 假設是 commit f79b0b1ffe445cab6e531260743fa4e08fb4048b

# 切到v2.0中

git check v2.0

# 合併commit

git cherry-pick f79b0b1ffe445cab6e531260743fa4e08fb4048b

git rebase有點類似git merge,但是兩者又有不同,打個比方,你有兩個抽屜a和b,裡面都裝了衣服,現在想把b中的衣服放到a中,git merge是那種橫衝直撞型的,拿起b就倒入a裡面,如果滿了(衝突)再一併整理;而git rebase就很持家了,它會一件一件的從b往a中加,會根據一開始放入的時間順序的來加,如果滿了你可以處理這一件,你可以繼續加,或者跳過這一件,又 或者不加了,把a還原。所以merge適合那種比較瑣碎的,簡單的合併,系統級的合併還是用rebase吧。

專業的區別請移步到這裡合併和衍合

# 合併b

git rebase b

# 處理完衝突繼續合併

git rebase –continue

# 跳過

git rebase –skip

# 取消合併

git rebase –abort

2樓:運動一圈

假設現在有兩個分支 a b

1. 在b分支上執行 git merge a 後 a就被合到b上了

2. 在b分支上執行 git rebase a 後,效果與merge是一樣的,但是 a就沒有了,兩個分支就合在一起了。

cmd命令和DOS命令有什麼區別

cmd和ms dos的區別 概念部分 1 2000 xp下的cmd與98的ms dos的不同之處 cmd.exe叫命令提示符他與98下的ms dos是不一樣的,所以我們不能將他混為一談,但是我們卻可以用cmd.exe來執行很多dos命令,例如 dir cd del等等!2 cmd下的內部命令與外部命...

linuxsu和sudo命令的區別

1 定義上 su為switch user,即切換使用者的簡寫。su是最簡單的身份切換名,用su我們能夠進行不論什麼使用者的切換,一般都是su username,然後輸入password就ok了,可是root用su切換到其它身份的時候是不須要輸入password的。sudo是一種許可權管理機制,依賴於...

linux su和sudo命令的區別

su 是切換使用者 如 su test是指當前使用者切換到test使用者下 sudo是以某個使用者的身份 或者叫特權 執行一些命令如 sudo fdisk l 以root身份執行fdisk l命令,並檢視結果。sudo 是用root許可權執行一個命令 su 是切換使用者 linux su和sudo命...