打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
git 删除|撤回错误提交

问题说明

修改后提交了,发现弄错了,除了手工修改回来再提交外(少量改动可采用),

还可用git 方便的撤回

场景差异说明:

有没有push到远程

push 后是否有其他人拉取(如果有其他人拉取的不能用reset)

撤销 最后一次,某一次,多次提交

命名说明

reset--重置指针

revert -生成提交的反提交并作为一个新提交(改的再改回去,只是git帮自动生成)

rebase -将当前分支推到rebase 指定位置与当前位置的最近交叉点,并将交叉点到当前分支位置的所有提交,生成一个个补丁包重新提交(-i 选项可以选择如果应用各个提交-合并,删除,采用等)


1:删除最后一次

如果没有push

git reset --hard HEAD^

如果有push到远程,没有其他人拉取

git reset --hard HEAD^

git push  origin dev -f

如果有其他人拉取不能用reset

git revert HEAD

git push  origin dev

2:删除某一次-

删除的提交id:commitIdB(cmmitidA是B的父提交)

如果那一次到目前都没有人拉取

用rebase -i cmmitidA(B父提交) ,

对commitidB 进行 drop -删除这次提交(如果文件有其他提交有共同修改会有冲突,需解决冲突)

如果有人拉取

采用revert 

git revert commitIdB

3:删除多次提交

没人拉取(或没有push)可以采用reabse -找到删除提交最早的位置

如果删除的提交与要保留的提交有冲突(修改共同的文件),需要解决冲突

有人拉取用revert

revert 可以逐个,也可一次撤销多个连续的

A -> B -> C -> D 

如果想把B,C,D都给revert,除了一个一个revert之外,还可以使用range revert

git revert OLDER_COMMIT^..NEWER_COMMIT(git revert B^..D )

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Git常用命令详解
十分钟了解 git 那些“不常用”命令
Git撤销&回滚操作
一篇文章,教你学会Git
如何克服解决Git冲突的恐惧症?
45 个 Git 经典操作场景,专治不会合代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服