git常用高危命令整理

以下操作均属高危搞作,请谨慎使用

一、移除错误的push(操作一旦完成无法恢复)

1、查询想要回退的commit-id, 一般选择出错commit的前一个commit-id,并复制下来
git log
2、切换到对应的commit
git reset --hard <commit-id>
3、强制提交代码
git push -f
总结:这个方法,适用于push了一份错误的代码,且没有其他人在这份错误代码的基础上进行开发,切换到对应的commit后,强制提交,会将切换对应commit之前的全部commit覆盖。

二、移除错误的push(可恢复)

1、查询想要回退的commit-id, 一般选择出错commit的前一个commit-id,并复制下来
git log
2、切换到对应的commit
git reset --soft <commit-id>
3、将本地的错误代码暂存
git stash
4、强制提交
git push -f
5、在本地恢复错误的代码
git stash pop
总结:这种方式流程多了一步暂存,可以将错误的代码暂存起来,然后将没有问题的代码强制提交到对应分支。 回过头来,再选择是否需要再本地恢复错误的代码,如果不想恢复,可以执行git stash clear将暂存的代码清空,如果想改改错误的代码再提交,就可以执行git stash pop。然后继续push。这个操作和上一个操作基本一样,只能切换到某次commit,并覆盖掉之前的全部commit

三、移除错误的push(中间某次commit)

解释:在某个分支,你提交了一次错误代码之后,自己或是有其他人在你的这次错误之后又提交了部分代码。

1、查询出错commit-id,并复制下来
git log
2、使用soft切换到对应的commit
git reset --soft <commit-id>
3、暂存错误代码之后提交的正确代码
git stash
4、继续查询出错的前一次commit-id,并复制下来
5、使用hard切换到对应的commit
git reset --hard <commit-id>
6、恢复暂存的正确代码
git stash pop
7、强制提交代码
git push -f
总结:这种情况已经在开始进行了说明,原理是先切换到错误的commit,并将错误之后的正确代码暂存,然后切换到错误之前的commit,恢复正确的代码,这样就将错误的commit从中间排除出来了,最后进行push。覆盖之前的操作。

四、多分支转移commit

场景解释:假设有两个分支dev1,dev2, 你在dev1开发, 但是因为某些奇怪的原因,切换到了dev2,巧合的是你忘记了自己切换到dev2的事情,所以把本应该提交到dev1的代码,提交到了dev2. 此时应该可以使用如下操作

1、在错误分支查询这次不应该出现的commit-id,并复制下来
2、切换到正确分支
git checkout <branch name>
3、将错误的commit转移到当前分支
git cherry-pick <commit-id>

命令解释

git reset --hard 与 git reset --soft的区别

git–hard会删除本地代码,并将指针切换到指定的commit
git–soft不会删除本地代码,并将指针切换到指定的commit

git stash

git stash暂存当前没有commit过的代码,并且可以连续多次stash
git stash pop可以按顺序,每次一份恢复暂存的代码
git stash clear 清空暂存的代码

git push -f

强制提交代码

git cherry-pick

从一个分支将某段commit代码转移到另一个分支,可以连续多个转移

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值