【发布时间】:2019-08-25 10:37:28
【问题描述】:
我修改了一些文件并提交了我的更改。
我注意到有 3 个文件我不应该修改,我希望它们恢复到原来的状态,但我不想重置为以前的提交,因为我没有'不希望我的其他文件更改丢失。我该如何做到这一点?
【问题讨论】:
标签: git git-revert
我修改了一些文件并提交了我的更改。
我注意到有 3 个文件我不应该修改,我希望它们恢复到原来的状态,但我不想重置为以前的提交,因为我没有'不希望我的其他文件更改丢失。我该如何做到这一点?
【问题讨论】:
标签: git git-revert
如果您还没有推送,那么您的提交现在只是本地的,那么一个简单的过程就是
# restore these 3 files to their previous state
git checkout HEAD^ -- path/to/file1 path/to/file2 path/to/file3
# include these changes...
git add path/to/file1 path/to/file2 path/to/file3
# ... in last commit
git commit --amend
但是,如果您已经推送,则有两种基本情况:
1) 要么您单独处理此存储库,或者共享存储库但单独处理此分支(功能分支通常是这种情况,但取决于您的工作流程)
上面的过程很好,只是要注意下次你要推送到远程时,你必须在你的推送命令中使用-f标志来强制更新旧的参考。
2) 或这是一个共享分支,它的历史不能轻易改变
那么上面的过程,重写历史,是要避免的。相反,您只需在最后省略 --amend 参数,它就会进行新的提交,其中仅包含文件的最后一次修改。不如一开始就提交它那么优雅,但您没有更改历史记录并且您的文件很好。
【讨论】: