-
问题现象
当多人操作同一文件同一行代码,当commit->pull之后会出现merge,merge完之后,会出现不是自己提交的文件也变蓝(出现变动,以下出现变蓝皆为此意)。如果此时revert了这些蓝色的,再commit->push,会造成把别人代码丢失
-
原因分析(可能)
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 初探_内沐的博客-优快云博客_idea stash
-
建议
-
每天写代码之前pull下代码,避免出现merge
-
少用禁用全局格式化,用局部格式化代码
-
不要上传.iml、.idea、.vscode等编辑器配置文件
本文详细解析了在多人协作中,Git Merge操作可能导致的代码冲突现象,尤其是当多个开发者同时修改同一文件同一行代码时的问题。文章提供了具体的解决步骤,包括如何正确commit他人代码以及使用stash方法避免不必要的代码变动,从而确保团队协作的高效与代码的完整。
6018

被折叠的 条评论
为什么被折叠?



