git rebase和git merge是在日常开发中常用的用于分支合并的命令,也是非常容易误用的两个命令。本文将通过图文的方式去详解二者之间的区别。git mergegit merge会为本次的合并过程生成一条新的commit,并将该commit添加到目的分支上。
这个例子理解原理之后解决方法有很多,这里简单带过两个方法:1. revert 节点 E'之后,此时的 dev 分支要抛弃删除掉,重新从 E'节点拉出分支继续工作,而不是在原 dev 分支上继续开发节点 D;
如果你还没有推到远程, 把Git重置到你最后一次提交前的状态就可以了:这只能在没有推送之前有用. 如果你已经推了, 唯一安全能做的是 git revert SHAofBadCommit, 那会创建一个新的提交用于撤消前一个提交的所有变化;