Git错误的提交
git是程序员平时除了编译器之外都会用到的工具,无论是用原生git指令还是source tree或者fork等git工具,都可能会出现错误提交的情形,这时候千万不要慌张,亡羊补牢,为时不晚。以下提供三种解决方法和思路(笔者主要使用Fork工具):
千万千万千万不要用Revert!!!!!
revert故名思义就是还原你的代码到这次提交之前的状态,但是由于在merge的时候git只认commit的sha值,不会再去比较代码的差异,这将会导致你的代码丢失。例如我错误地merge了branch A到branch B,这时候我想要revert Merge branch A to B这个commit,千万不要这么做!!!因为这会导致之后我修复好了branch A里面的内容,我想再次merge到branch B的时候,这时候你就会发现revert的代码都丢失了,因为正如之前所说git只会比较commit的sha值,不会比较branch A和branch B的代码差异,即使你已经revert了。
使用 git rebase
如果我把branch A错误地merge到了master分支,这时候千万不要revert,revert会使你的master分支变得混乱,正确的做法是reset你的master分支到错误提交之前的位置,也就是git rebase到正确的提交。这样你的master分支就是干净的,不会影响到别人继续在master分支上新建其他分支。
使用 git cherry-pick commit
如果你已经提交了错误的代码到你的feature,不能revert的话,还有什么办法呢?最好的方法是重新建一个feature-2,cherry-pick你需要的feature里面的提交,这样就可以避免revert了,而且新建的分支sha值也都是不同的,不存在代码丢失,等于是你完全重新写的代码
以上为笔者浅浅的理解,如果能帮助到你们那是我最大的荣幸,如果有错误的地方,欢迎在评论区指出。