问题
如何在重置到特定提交时保留工作区中未提交的更改?
解决方案
使用 git reset 命令的 --keep 选项可以在重置时保留未提交的本地更改:
git reset --keep <commit>
示例
- 重置到特定提交并保留更改:
git reset --keep abc123
- 重置到上一个提交并保留更改:
git reset --keep HEAD^
- 重置到远程分支并保留更改:
git reset --keep origin/master
注意事项
- --keep 选项会保留工作区的修改
- 如果重置的提交与未提交的更改有冲突,命令将会失败
- 与 --hard 选项相比更安全,因为不会丢失未提交的更改
- 建议在执行前先确认工作区状态
相关命令
git reset --hard <commit>
git reset --soft <commit>
git reset --mixed <commit>