Git回滚/强制推送

伍陆柒 256 2022-04-15

Git回滚提交

记录一次推送含有Secret的代码到了Github上,急急忙忙找教程撤回

首先本地回滚

  1. 直接使工作区回到某一次提交上,放弃之后的所有更改或者提交
#返回到上一次commit
git reset HEAD
#返回到上上一次commit,以次类推 
git reset HEAD^ 

#回到某一次提交,首先通过git log获取版本号
git log
git reset --soft xxxxxxxxxxxxxxxxxxxxxx
git reset --hard xxxxxxxxxxxxxxxxxxxxxx

#注意,git reset --hard会删除本地代码,慎用!
  1. 通过一次新的commit来实现回滚,同时保存回滚前的commit

git revert <commit id>
git revert 221c4b26053982a32d0b019443b472380138851b
git revert HEAD

强制提交到远程

git push origin master –force

Git强制提交/推送

前几天不断遇到一个问题,写好的代码push到远程仓库后,出现了一些问题,需要回滚版本,记录一些情况

1、fork他人仓库

远程仓库回滚了,然而本地已经git pull,跟进更新

#首先将本地分支回滚到远程分支上
git reset --hard upstream/master
#然后再将改动强制推送到fork仓库
git push origin master --force

2、本地回滚后,推送

#首先将本地分支硬回滚
git reset --hard commitId
#或者使用revert指令
git revert commitId
#reset 与 revert区别很好区别
#hard是直接放弃回滚点之后所有提交,不可逆
#revert是生成一个新的commit到回滚点,可逆

#然后强制推送到远程仓库
git push --force

# Git