Eclipse+EGit的配置注意点, 以及解决Github多个本地仓库之间的冲突
问题描述
不同本地仓库(e.g. Repo1, Repo2)之间同时修改一个文件时, 出现文件无法merge的情况.
具体表现为, 冲突(红色双向实心箭头)一直存在, 点pull没反应, 点push报错, 双击文件也没有出现merge提示("<<<<<<"这样的符号), 点"add to index", mark as merged等等 都没用. 手动merge或者overwrite, 也无法push回remote.
原因:
repo1和repo2同时修改一个文件e.g. README.MD
repo1修改成AAA, commit+push到remote
repo2修改成BBB, commit到本地.Fetch, 进入Sync Perspective. 冲突可见.
此时, 正确操作应该是: repo2中选择冲突文件, 用merge tool来合并成最终版本.
但如果操作人员不小心, 讲repo2中的冲突文件直接修改成CCC, 且不commit, 则会遇到上述问题. 导致pull(fetch+merge)不成, push不成, merge界面不出现的尴尬情形.
在冲突文件较多时, 这个问题比较隐蔽, 容易造成困扰.
根本原因:
不通过merge tool或者pull(不推荐), 直接修改文件, 会导致repo2的staging和本地仓库不一致.
此时, 该文件对repo2而言, staging, local repo, remote repo内容各不相同.
commit之后使得本地所有文件一致. 可以重新开始fetch+merge.
解决方法:
在repo2中, 修改冲突文件, commit, 再次走正常merge步骤即可.
题外话
Eclipse中配置EGit - 具体参数意义 https://git-scm.com/docs/git-config
1. 有防火墙的情况下记得设置http.proxy
2. http.sslVerify设置为false避免push fetch时做http的ssl验证.
3. core.autocrlf - 如果跨Windows(CRLF), Mac(CR)和Linux(LF)写代码, 需要注意这个换行符的问题. 设置如下(3个选项) 另有core.safecrlf可以做检查用.
#添加文件到git仓库时, 视为text, 自动把crlf变lf. 取出的时候又把文件转成crlf.
# x -> LF -> CRLF
git config --global core.autocrlf true # x -> LF -> LF
#添加时, crlf转lf, 取出文件的时候, 不做转换, 仍是lf.
git config --global core.autocrlf input #不做转换, 原样进出
# x -> x -> x
git config --global core.autocrlf false
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true #允许提交包含混合换行符的文件
git config --global core.safecrlf false #提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
因此, 只在Windows系统下开发, 直接设false即可. 仓库中和workspace中的换行符都是CRLF.
此外, 如果文件中包含中文字符且使用UTF-8编码, 也应该用false保证文件一致性. 转换过程可能导致问题.
Windows+Linux/Mac开发: Windows下设置为true, Mac/Linux下设置为input.
这样Windows的Workspace中是CRLF (提交时会把CRLF转换成LF, 取出时会把LF转换成CRLF)仓库和Mac/Linux的Workspace下都是LF.
Eclipse+EGit的配置注意点, 以及解决Github多个本地仓库之间的冲突的更多相关文章
- IDEA maven 配置,运行比较慢,加截本地仓库资源数据
在 Runner 配置了参数: -DarchetypeCatalog=internal
- maven配置本地仓库、maven配置阿里中央仓库、eclipse配置maven
一.maven配置本地仓库路径 1.打开下载好的maven目录 (若没安装,可以看我写的安装步骤https://www.cnblogs.com/xjd-6/p/11344719.html) 2.进入c ...
- Maven本地仓库配置
一. 为什么配置? 默认情况下,maven的本地仓库在C盘下用户文件夹: .m2/repository.全部的maven构件(artifact)都被存储到该仓库中.以方便重用. 可是放在C盘一个是占用 ...
- 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project
使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题: 1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-X ...
- eclipse egit 解决冲突
eclipse egit冲突解决 在 pull 代码的时候 ,从远程仓库与本地仓库进行同步的时候 ,如果服务器版本与本地仓库版本不一致, 需要解决冲突 首先需要将改动的代码commit到本地仓库,冲 ...
- 记录一次bug解决过程:eclipse Installed JREs 配置引出的问题
一 总结 eclipse Installed JREs 配置引出的问题:编译以来JDK,不是JRE spring boot内嵌tomcat运行程序,tomcat:run 二 Bug描述:eclipse ...
- eclipse定制化配置调优、初始化配置指南、可以解决启动慢等问题
配置eclipse的jvm参数 打开eclipse根目录下的eclipse.ini在最后面加上如下的jvm参数 -Xms400m -Xmx1400m -XX:NewSize=128m -XX:MaxN ...
- 【Java】Maven安装、Eclipse配置以及相关错误解决集合
作者呕血总结,下面写的每一个错误我都遇过 · Maven安装 · Eclipse配置 · Maven安装 安装前请确保已经装有JDK. 一. 准备Maven程序包 到官网https://maven.a ...
- [转]git在eclipse中的配置
一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EGit 二_使用EGIT前的配置 配置个 ...
随机推荐
- KMP模式匹配 三(弦)
原文请訪问我的博客:xiaoshig.sinaapp.com KMP模式匹配 三(串) Time Limit:1000MS Memory Limit:131072KB 64bit IO ...
- sql中int字段实现百分比
首先: 用col*1.00 把int字段隐式转换成decimal类型. 然后: 用 round(col,2)来截取前两个小数前的数据 最后: 用 CONVERT(FLOAT,decimalNum)来转 ...
- 生成64位代码的mdb数据库连接串Provider的设置
生成32位程序的mdb连接串的 Provider为:Provider=Microsoft.Jet.OLEDB.4.0 而生成64位代码时,则需要使用如下的 Provider Provider=Micr ...
- Code First Entity Framework 6化被动为主动之explicit loading模式实战分析( 附源码)
在使用Entity Framework加载关联实体时,可以有三种方式: 1.懒加载(lazy Loading); 2.贪婪加载(eager loading); 3.显示加载(explicit load ...
- Spring AOP那些学术概念—通知、增强处理连接点(JoinPoint)切面(Aspect)
1.我所知道的AOP 初看起来,上来就是一大堆的术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等.一下让你不知所措,心想着:管不得很多人都和我说AOP多难多难.当我看进去以后, ...
- leetcode Longest Valid Parentheses python
class Solution(object): def longestValidParentheses(self, s): """ :type s: str :rtype ...
- Android 监听器
Android提供很多种事件监听器,监听器主要是为了相应某个动作,可以通过监控这种动作行为,来完成我们需要的程序功能. OnItemClickListener: ...
- HTTP性能测试
HTTP性能测试 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",& ...
- nodeJs入门笔记(一)
node将"HTTP服务器"这一层抽离,直接面向浏览器用户 如PHP运行之前先要配置一个功能强大而复杂的HTTP 服务器,譬如Apache.IIS 或Nginx,还需要将PHP 配 ...
- Myeclipse普通工程转为Maven工程
在SVN导出的Maven项目,或以前不是用Maven管理的项目想要转换成Maven项目,但Myeclipse中右键Configure 找不到(eclipse可行)Convert to maven pr ...