Git错误: Updates were rejected because the remote contains work that you do nothint: have locally.

这个错误常出现于:git提交代码前没有拉取远程的新代码,commit了之后,push就会报这个错误,会提示你pull代码。但是直接pull的话,就会多出merge branch的提交记录,在gerrit上就会多出冗余的提交记录。因此此时可以采用下面两种方法避免这个问题:

方法1、

git pull --rebase origin 所在分支名  不会产生merge记录,将本地代码先更新为远程最新代码

git push origin 所在分支名 将本地的修改推送至远程仓库

方法2、

step1- 先撤销本地的commit : git reset HEAD~1 即撤销最新一条的提交

step2- 将本地修改的代码stash起来,防止丢失 :  git stash 

step3- 拉取远程代码,此时直接: git pull ,因为本地已经回退了,不会有merge记录了

step4 - 此时把暂存的代码拿出来:git stash pop

step5- 执行最后的push操作:git push origin 所在分支名

方法一用rebase比较简洁。方法二就是利用回退提交,先拉新代码再提交本地代码就不会出错的原理。两个方法亲测有效的,大家可以一试,欢迎大佬们批评指正~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值