git 提交后,撤回到提交之前

一、git 本地提交但未提交到远程分支时,退回到提交之前,可保留提交内容也可以不保留

  1. 输入 git log 查看并拷贝提交的 id
  2. 保留提交内容:git reset 提交的id
    注意:此 id 为 提交备注 下面的commit id,不是上面的id
git reset 52aff3de6e039a7960aa11d2155b5c1233f6cad1
  1. 不保留提交内容:git reset --hard 提交的id
    注意:此 id 为 提交备注 下面的commit id,不是上面的id
git reset --hard 52aff3de6e039a7960aa11d2155b5c1233f6cad1

二、 git 代码已经提交到远程分支,退回到提交之前(注意:如果回退的分支是与其他伙伴联合开发的总分支,需要通知其他人删除本地总分支并重新拉取远程总分支,避免被其他人的原总分支代码覆盖)

  1. 输入 git log 查看并拷贝提交的 id
  2. 执行:git reset 提交的id,成功后会撤回 id 的提交,保留提交内容
git reset 52aff3de6e039a7960aa11d2155b5c1233f6cad1
  1. 执行:git reset --hard 提交的id,成功后会撤回 id 的提交,不保留提交内容
git reset --hard 52aff3de6e039a7960aa11d2155b5c1233f6cad1
  1. 执行:git push -f ,此操作会退回到 提交的id 的远程提交之前
    注意:此操作会将最后一次提交到 提交的id 的远程提交中间的所有提交全部退回(退回的提交会清除提交记录),git push -f 之前不要将退回的更改内容提交
git push -f

三、 git reset 的三个选项模式

HEAD^ 代表最新的版本(代替id)
HEAD~2 代表上两个的版本(代替id)

--soft          回退到 commit 之前                                     git reset -–soft HEAD^
--mixed         回退到 add 之前                                        git reset –-mixed HEAD~2
--hard          回退到 没修改代码前(删除修改的代码)                   git reset --hard HEAD~3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容