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,主要用来撤销操作。