1. git cherry-pick
作用:從一個branch上選擇一個commit,添加該commit到另一個branch上。
1. 切換到你想添加commit的分支上。
git checkout master
2. 執行下面的代碼
git cherry-pick <commit-hash>
2. git rebase
作用:git rebase命令是一個自動化的cherry-pick命令, 它會添加一個branch上的所有commit到另一個branch上(找到一個branch上的所有commit,然后按照順序,一個一個的cherry-pick他們到另一個branch上)。
原理:
先尋找到兩個branch的共同祖先(你所在的branch和你rebase的branch),得到你所在branch的所有commit,保存這些不同到臨時文件,然后重置現在的branch到你想要rebase的commit,然后重新添加每一次的改變到現在的分支。執行如下命令:
1. git checkout experiment
2. git rebase master
然后切換到master分支,做一下合並。
1. git checkout master
2. git merge experiment
3. git revert
作用:git revert命令是git cherry-pick命令的相反命令。它會創建一個新的commit,主要用來撤銷操作。