git怎么解决上传代码冲突问题

git怎么解决上传代码冲突问题

Boss直聘上被推送了这个问题,问题分类是“web前端面试相关回答”,应该是面试时问到的题。

这个问题的场景应该是多人同时修改相同的文件行,然后本地commit完提交代码之后提示代码冲突了。

比较不好的做法是,

git push --force origin

这样可以忽视冲突提示,强制用本地commit覆盖服务器代码, 但这种做法肯定是不推荐的。

强制覆盖会把同事提交的代码覆盖,同事的代码被你给抹掉,问题很严重!所以要尽量避免–force选项。

正确的做法

我们要始终坚持一个目标,就是服务器的代码不能被我们的误操作产生错误。所有的代码都是正确可查的。这就要求我们养成好的习惯,即使出现冲突也要在我们本地冲突,不能污染到服务器仓库。

正确的方式应该如下操作:

git stash #先把本地修改都存到栈中
git pull --rebase #保持本地代码跟远程仓库同步
git stash pop #把栈中的修改出栈,这时可能会产生冲突
# 手动解决产生的冲突
git add <产生冲突的文件们>
git commit -m "msg"
git push

养成这样的习惯,就能保证产生的冲突只会在我们本地,可以本地处理了冲突再提交。

再回到原问题,提示冲突说明已经做完了commit,我们只需要把commit的代码reset,再按照正确的方式处理就行了。

git reset --soft HEAD^      #还原最新的commit到未提交状态

问题搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值