方法一:
revert 撤销某次提交
git revert 100047dcc
error: Commit 100047dccb58f3ee5e27b0dfaf5c02ac91dc2c73 is a merge but no -m option was given.
fatal: revert failed
结果报错了,报了一个 Commit is a merge but no -m option was given. 为什么呢?
如果 100047dcc 这只是一个普通的提交,其实是不会报错的,但是,这是一个 merge 的提交。
git revert 100047dcc -m 1
方法二:
1,首先git log查看提交记录,找到出错的前一笔提交的commit_id
2,用命令git rebase -i commit_id ,查找提交记录
3,将出错那笔提交的pick改为drop
4,Esc,:wq
方法三:
git cherry-pick
1、git reset --hard 1d7444 #回退到出错版本前一个commit
2、git cherry-pick 626335 #将某次commit的更改应用到当前版本(将出错 cmmit 之后别人提交的代码合并到当前正常代码分支上)
3、git push origin HEAD --force #强制提交
cherry-pick 连续的commit
从f9e0e46c7005 开始 至 3b4c4c56c410
git cherry-pick f9e0e46c7005^…3b4c4c56c410
命令:git rebase --onto [Branch] [commit_id1] [commit_id2]
用法:有两个branch分支(branchA 和 branchB),需要将branchB中的某几个commit 合并到branchA中。
1、分支checkout到branchB
2、执行命令:git rebase --onto [branchA] [commit_id1] [commit_id2],此时branch处于游离状态(可以使用git branch查看分支)
3、执行命令:git checkout -b [new_branch] ,得到一个新分支new_branch,此分支即为想得到的分支
4、将new_branch合并到branchA上,即完成