主题
使用 reset 与 revert
reset
和 revert
都是撤销提交的命令,但用途和影响不同。
git reset
reset
会移动当前分支的指针,改变提交历史。
--soft
:只移动指针,保留暂存区和工作区改动。--mixed
(默认):移动指针,取消暂存但保留工作区改动。--hard
:移动指针,删除暂存区和工作区的改动。
示例:
bash
git reset --hard HEAD~1
将当前分支回退一个提交,删除改动。
⚠️ 不推荐在公共分支对外推送的提交使用,以免破坏协作。
git revert
revert
是生成一个新的提交,撤销指定提交的改动,不修改历史。
示例:
bash
git revert <提交哈希>
适用于公共分支,安全撤销已发布的提交。
总结
reset
:改写历史,适合本地私有分支。revert
:安全撤销,适合公共分支。
合理选择命令,保障版本管理安全与协作顺畅。