git reset --soft 撤回 commit

2020-01-02  本文已影响0人  黄同学2019

今天遇到这种状况,我本该在自己的分支上修改代码,结果没有事先切分支,结果写在了 dev分支上,而且,我还是在 commit 之后才发现自己分支错了。

为了把这次 commit 的代码迁移到 我自己的分支上,我使用了笨办法。

首先,使用 git log -p 查看我所有的【变更文件】

因为没有 push 代码,我重新 clone 了dev 的代码,正好上次是我的提交,这样不影响我代码处理。

我对比 更改的 dev 和拉去下来的 dev ,将【变更文件】拷贝到新拉下来的 dev 中,使用 git stash 暂存代码,切到自己的分支上,使用 git stash pop 覆盖,接着正常add 和 commit 即可。

但是,参考网上其他解决办法,看到一个有意思的实现思路:

其实,是有办法可以撤回 commit 但是 保留 add 的文件的。使用如下方式

git reset --soft head^

这样,即可撤销上一个 commit,但是保留 add 的文件,此时,使用 git stash 一系列操作即可将代码放到自己的分支上

参考资料:

上一篇 下一篇

猜你喜欢

热点阅读