git提交把别人的提交覆盖了

本文详细解析了在多人协作中,Git Merge操作可能导致的代码冲突现象,尤其是当多个开发者同时修改同一文件同一行代码时的问题。文章提供了具体的解决步骤,包括如何正确commit他人代码以及使用stash方法避免不必要的代码变动,从而确保团队协作的高效与代码的完整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 问题现象

多人操作同一文件同一行代码,当commit->pull之后会出现merge,merge完之后,会出现不是自己提交的文件也变蓝(出现变动,以下出现变蓝皆为此意)。如果此时revert了这些蓝色的,再commit->push,会造成把别人代码丢失

  1. 原因分析(可能)

merge完之后,不是自己改的也变蓝,可能是因为由于冲突,导致不能智能的合并代码,同一批次pull的代码对比本地git仓库全部变蓝

现象截图还原

a:提交了2个文件如下( .gitignore、pom.xml)

b:提交一个文件(.gitignore) 如下->commit

b:pull->提示merge

b:左边是b的,右边是a的,中间是最终结果(idea的三视图merge代码工具很好用,推荐)

b:当解决完冲突,点击apply确认后

会发现本地 .gitignore 变蓝,但是pom.xml 也变蓝了

b:如果感觉 pom.xml 我没改过啊,给他revert->commit->push

会把a对pom.xml的修改给吞了

解决方法

  • 一定要commit不是自己的代码

b:commit ->pull->merge->commit(把a修改的pom.xml一并commit)->push

  • 使用stash(建议用此方式)

b:stash->pull->unStash->merge->commit->push

这种方法不会出现pom变蓝

stash:intellij idea 使用 git stash 初探_内沐的博客-CSDN博客_idea stash

  1. 建议

  • 每天写代码之前pull下代码,避免出现merge

  • 少用禁用全局格式化,用局部格式化代码

  • 不要上传.iml、.idea、.vscode等编辑器配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值