我可以还原一个特定的提交,使其在文件中保留未删除的内容吗?

min*_*ake 6 git

这是场景:

- 我对我的文件做了很多小的和大的修改,并没有提交它们

- 我决定使用git commit --interactive和使用patch命令来提交部分提交

- 当我这样做时,我试图让所有提交都相关

- 我在多次提交后发现我意外地进行了一次更改,我本来应该在6次提交之前放弃,所以我还原了那次提交.

- 恢复删除了文件中相关的文本,这是预期的行为.

最后一步是我要修改的那一步.我想要做的是恢复提交,但将文本保留在文件中,以便我可以重新提交提交.我的方法是在恢复提交之前将HEAD区分到提交,然后我复制并粘贴文本并对其进行修改以使其不是diff格式,因此我可以在文件中使用它,然后将其提交正常.

我确实意识到我需要学习早期和经常做事的习惯.我还没有掌握它,但是,因为当我只是编码时它喜欢打断我的心态.

我修复它的方式很乏味.有没有办法将文本保留在一个文件中,该文件将在恢复中删除,就好像它是一个未分级的更改(有点像重置一样)?除此之外的任何建议?

asg*_*las 7

您可以运行两次还原,最后一次应用--no-commit,这将使索引中的更改准备好提交:

git revert <the commit you want back in the working tree>
git revert HEAD --no-commit
Run Code Online (Sandbox Code Playgroud)

这些更改现在已暂存并准备好进行新的提交.要取消暂停运行:

git reset HEAD
Run Code Online (Sandbox Code Playgroud)

  • 你可以为第二个说'git revert --no-commit HEAD`(不需要知道它的提交id). (2认同)