git合并issue-记录
2018-01-19 本文已影响0人
半瓶水monster
背景
在yihao-cp-channel分支上fix一个bug, 突然想起来主干上之前上线的一个bug没合过来,鬼使神差就去merge, 但是却merge了dev分支的代码。赶紧看看dev上的提交记录。尼玛,他们居然提交了那么多的代码,果断要revert回滚。
revert a merge commit
直接git revert commid-id会报 -m, 没有指定mainline的错误。在revert merge时候必须通过-m 指定parent, 从而去掉另一个分支的最近更改。
$ git show g
commit g
merge: yihao-cp-channel dev
$git revert -m 1 g
-
保留 yihao-cp-channel分支上的修改,撤销 dev 分支上合并过来的修改。
-
新增git记录G是撤销g生成的 commit。通过$ git show G之后,我们会发现G是一个常规提交,内容就是撤销 merge 时被丢弃的那条线索的所有 commit 的「反操作」的合集。
-
错误的merge的确reverted成功了,但是此时准备再合并master,提示已经是最新的更新,合并不了。尼玛,认为我的分支要新于master了。好吧,我重置到之前的一个老的版本再合并吧,只能这样了。
git reset
把本地yihao-cp-channel代码回撤到有问题的提交点之前
git reset -q –hard commid-id
将本地yihao-cp-channel强行推送到远端,需先在githab上设置解除master的强行推送的限制,之后再改回来.
git push -f origin yihao-cp-channel
终于成功了,然后就好好的合并master吧。