git cherry-pick <commit id>
实际问题
我在master 分支修改了一个bug(一次commit),希望可以在testbranch 也能够进行修改(也就是要把这个bug修改放到testbranch 上)
使用 cherry-pick. 根据 git 文档:Apply the changes introduced by some existing commits 。就是对已经存在的commit 进行apply (可以理解为再次提交)
简单用法
$ git cherry-pick <commit id>
这个commit id 我们可以使用git log 查看之前的某一次修改id
$ git log
commit 3f4f283993c5244671f166b6d017b086ac941a1a
Author: zhangxi <********@sina.cn>
Date: Wed Apr 3 22:41:00 2019 +0800
first create readme git cherry-pick
$ git cherry-pick 3f4f283993c5244671f166b6d017b086ac941a1a
出现冲突
git status 查看冲突文件
那么是需要对提示的冲突文件进行修改,修改完后
git add readme.txt
git commit
git push origin testbranch
这样子远端的数据就变成了最新修改后的样子了。
如果没有冲突
如果想撤销cherry-pick 可以进行
git cherry-pick --abort
to cancel the cherry-pick option
顺便说一下;
git 删除远程分支:
$ git push origin --delete branchname //分支名称
git 删除本地分支:
$ git branch -d branchname
删除完后通过 git branch –a 查看分支情况