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前的配置 配置个 ...
随机推荐
- IOS 8弃用api
IOS 8弃用api 下面api是弃用: 的 UIApplication 方法和属性注冊通知. 使用新的API. 的 uiviewcontroller 面向接口的方法和属性. 中描写叙述的特征和大小类 ...
- Haffman算法(C++)
Huffman编码,C++实现,只是为了说明大致的思路,还有很多不完美之处,比如在输入数据超出限制等条件下会出现错误. #include<iostream> #include<str ...
- 执行CMD代码
/// <summary> /// 发送CMD命令(执行命令行) /// </summary> public static void SendCMD(string pwd) { ...
- CentOS6.4中安装Python-Pip 以及Phyton gevent
一.安装Phyton-pip 首先要安装 Setuptools wget --no-check-certificate https://pypi.python.org/packages/2.6/s/s ...
- trie tree(字典树)
hihocoder题目(http://hihocoder.com/problemset):#1014 trie树 #include <iostream> using namespace s ...
- Git 系列(三):建立你的第一个 Git 仓库
现在是时候学习怎样创建你自己的 Git 仓库了,还有怎样增加文件和完成提交. 在本系列前面的文章中,你已经学习了怎样作为一个最终用户与 Git 进行交互:你就像一个漫无目的的流浪者一样偶然发现了一个开 ...
- mysql--外键(froeign key)
如果一个实体的某个字段指向另一个实体的主键,就称为外键被指向的实体,称之为主实体(主表),也叫父实体(父表).负责指向的实体,称之为从实体(从表),也叫子实体(子表) 作用:用于约束处于关系内的实体增 ...
- android sdk 更新问题——截止2014年6月10日有效
因为墙的原因,很多人的sdk都更新不了,下面记录了我刚刚实现更新的方法: 进到Android SDK Manager,菜单Tools->Options..,这时弹出一个框,在这个框的下面Othe ...
- Hibernate之dynamic-update
问题:设置了dynamic-update, 可是事实上并没有按照期望进行了update. 案例代码如下: 1.持久化对象 package com.jdw.hibernate.entities; imp ...
- [LeetCode]题解(python):151-Reverse Words in a String
题目来源: https://leetcode.com/problems/reverse-words-in-a-string/ 题意分析: 给定一个字符串,里面包括多个单词,将这个字符串的单词翻转,例如 ...