代码推送到远程仓库之后想回退并且不保留任何历史记录:
- 查看版本号信息
git log
:
bash
git log
commit version_example1 (HEAD -> dev, origin/dev, origin/HEAD)
Author: xxx <email>
Date: xxx
XXX注释
commit version_example2
Author: xxx <email>
Date: xxx
XXX注释
- 回退git reset --hard 目标版本号
bash
git reset --hard version_example2
- 推送到远程仓库
git push -f
:
bash
git push -f
注:如果是保护分支,需要先解除保护,推送成功之后再加保护!
由于没有及时回退,导致开发组内其他同事代码更新到了之前的变更,这时候该同事执行git pull
会报错:
bash
s glt pull
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint:
hint: git config pull.rebase false # merge (the default'strategy)
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories, You can also pass --rebase, --no-rebase
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Already up to date.
bash
$ git status
on brancn dev
Your branch is ahead of 'origin/dev' by l commit.
(use "git push" to publish your local commits)
注意保存好开发变更的代码
将该变更撤销即可:
bash
git reset --hard HEAD^