Git撤销
git reset
场景一:从暂存移除变更
# 创建文件 touch a.md # 变更加入暂存 git add a.md # 从暂存移除变更 git reset git status
场景二:取消提交,变更还在暂存区待提交
touch b.md git add b.md git commit -m "add b" # 移除最近一次提交,变更退回到暂存区,文件本身不变 git reset --soft HEAD~1
场景三:取消提交,重暂存移除变更、文件b.md从文件夹删除。一切像未曾发生一样
touch b.md git add b.md git commit -m "add b" git reset --soft HEAD~1
git revert
通过创建新的提交来“撤销提交”,换句话说并不是真的撤销,而是增加相反变更。
git revert HEAD~1
git revert 59f39a1
revert 更安全。
git checkout
临时切换到老的提交上,只是看看不做事。
git checkout HEAD~1
git checkout 59f39a1