怎么撤销你的远程推送或提交

撤销推送

Step1:

git log查看提交信息

Step2:

git reset --soft aa909cff2239536df14820fe086d96305b24e9f1

此时把git分支回滚到aa909这个commit时间点

撤销提交的命令:git reset --soft <版本号>

此时相对于回到分支头部第二条commit

所以我们也可以这样操作:

git reset --soft HEAD^

或者

git reset --hard HEAD~1

 HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1 如果进行两次的commit,想要都撤回,可以使用HEAD~2
--soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add file

--hard 删除工作空间的改动代码,撤销commit且撤销add

 此时可以看到:工作空间出现git add的代码变更 (如果使用--hard就不会有,直接删掉了)

分支状态:存在一个未推送处理

Step3:

此时可能有人会想,我直接把工作区的文件撤销了,然后再commit,再push,是不是就可以完成回滚了?

答案是错的。如果你这么做了,git会提示你:本地版本落后于远端的版本

To http://oa.zyqwt.com/wanzexi/oa_rebuild.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'http://oa.zyqwt.com/wanzexi/oa_rebuild.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

所以我们必须需要加上参数–force用本地的版本覆盖掉远端的版本

git push origin feature/dashboard-components --force

 Step4:

修改或删除代码后,按流程提交commit

git add .
git commit -m 'x'
git push origin feature/dashboard-components

撤销本地commit

commit后

 这个时候我们不想提交到远端,要撤回修改,我们应该怎么办呢?

git reset --soft HEAD^

因为远端版本没有改变,也低于本地版本,所以我们无需其他操作

可以看到文件已经回退回来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值