如何保留git commit,但是将commit的改动全部还原?

遇到一个问题,提交的一笔commit到gerrit review。但是发现需要将里面的大部分改动还原。手动还原不太现实。

如果是git reset会把commit也删掉,产生一个新的commit-id,导致gerrit上看到一个新的change-id。

想到了一个好的办法:

1.本地使用git revert HEAD,这会自动产生一个commit,里面会把前一笔commit改动还原;

2.git reset HEAD^, 把revert commit移除,里面的改动还原到暂存区,也就是本地git diff能看到。

3.再git commit --amend,提交到想要还原的commit-id。这样就实现了commit里面的改动还原。

posted @ 2024-03-14 16:31  老胡同学  阅读(56)  评论(0编辑  收藏  举报