-
问题现象
当多人操作同一文件同一行代码,当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 初探_内沐的博客-CSDN博客_idea stash
-
建议
-
每天写代码之前pull下代码,避免出现merge
-
少用禁用全局格式化,用局部格式化代码
-
不要上传.iml、.idea、.vscode等编辑器配置文件