svn 出现冲突时可以使用 meld . 命令合并。 而git的冲突合并详见内容
1、可以在任意目录使用 git mergetool --tool-help 查看 git 所支持的merge tools。
2、可以使用如下配置去设置merge tool 和 diff tool:
git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false # git config --global --add diff.tool kdiff3 #一般不将默认的diff tool设为gui的tool
git difftool 和 git mergetool 命令的说明:
- -g
- --[no-]gui
-
When git-difftool is invoked with the
-gor--guioption the default diff tool will be read from the configureddiff.guitoolvariable instead ofdiff.tool. The--no-guioption can be used to override this setting.简单的说就是有-g选项则使用
diff.guitool 设置的tool来作为diff tool。这个参数只对 git difftool 命令有效。 - --[no-]trust-exit-code
-
git-difftool invokes a diff tool individually on each file. Errors reported by the diff tool are ignored by default. Use
--trust-exit-codeto make git-difftool exit when an invoked diff tool returns a non-zero exit code.git-difftool will forward the exit code of the invoked tool when
--trust-exit-codeis used.也就是说git-difftool对每个文件分别调用一个 diff tool,每个diff tool的运行错误默认都是被忽略的。 使用
--trust-exit-code可以在某个 diff tool 运行后返回非0时使 git-difftool 退出。如果使用了
--trust-exit-code,则git-difftool会将返回码往下传递。
3、当冲突发生时,你可以简单的使用 git mergetool 来解决冲突。具体演示如下:
a、你修改了某些文件,且没有提交到本地库,这时你向pull服务器的版本,你大概是这样做的:
$ git fetch origin
$ git pull origin master From ssh://gitosis@example.com:22/projectname
* branch master -> FETCH_HEAD
Updating a030c3a..ee25213
error: Entry 'filename.c' not uptodate. Cannot merge.
b、上面的错误提示你有一个文件未能更新,因为它未提交新的更改,因此不能merge。因此你一般会这样做来试图解决这个冲突:
$ git add filename.c
$ git commit -m "made some wild and crazy changes"
$ git pull origin master From ssh://gitosis@example.com:22/projectname
* branch master -> FETCH_HEAD
Auto-merging filename.c
CONFLICT (content): Merge conflict in filename.c
Automatic merge failed; fix conflicts and then commit the result.
c、当你提交更改之后再pull,则git会自动对更改的文件进行merge,但上面提示merge发生冲突,接下来你应该这样来查看有哪些地方发生了冲突:
$ git mergetool
但是这一步还有例外,也许你并不想合并冲突,因为你有足够的信心直接采用文件的某个版本,这时你可以这样:
$ git checkout --ours filename.c
$ git checkout --theirs filename.c
$ git add filename.c
$ git commit -m "using theirs"
d、最后结束merge:
$ git pull origin master
$ git push master From ssh://gitosis@example.com:22/projectname
* branch master -> FETCH_HEAD
Already up-to-date.
冲突合并到此结束。
对于svn的合并,若出现错误,则其目录里将会有一些merge文件,这时候你可以直接再冲突的目录使用如下命令来合并冲突:
$ meld .
svn 出现冲突时可以使用 meld . 命令合并。 而git的冲突合并详见内容的更多相关文章
- 多人开发时Git下冲突的产生和解决
冲突的产生 很多命令都可能出现冲突,但从根本上来讲,都是merge 和 patch(应用补丁)时产生冲突. 而rebase就是重新设置基准,然后应用补丁的过程,所以也会冲突. git pull会自动m ...
- 17.分支的合并&遇到冲突时的分支合并
分支的合并 假设你已经修正了 #53 问题,并且打算将你的工作合并入 master 分支. 为此,你需要合并 iss53 分支到 master 分支,这和之前你合并 hotfix 分支所做的工作差不多 ...
- SVN提交项目时版本冲突解决方案
版本冲突原因: 假设A.B两个用户都在版本号为7的时候,更新了index.jsp这个文件,A用户在修改完成之后提交index.jsp到服务器,这个时候提交成功,这个时候index.jsp文件的版本号已 ...
- Git for Windows之分支管理、分支合并、解决分支冲突
分支是在稳定版本出现bug的情况下,通过分支技术,在保证稳定版本稳定的情况,修改稳定版本的(差异下载的,速度极快,不同于SVN等技术,会将所有的代码下载到本地)副本,通过合并,解决冲突,最后回归到稳定 ...
- git分支的合并和冲突解决【转】
本文转载自:http://blog.csdn.net/Kingson_Wu/article/details/39227611 http://gitbook.liuhui998.com/3_3.html ...
- Git合并分支出现的冲突解决
人生不如意之事十有八九,合并分支往往也不是一帆风顺的. 我们准备新的分支newbranch. LV@LV-PC MINGW32 /c/gitskill (master)$ git checkout - ...
- Git -- 分支与合并 (命令行+可视化工具p4merge)
基本命令 把所有的变化都放在master分支并不是最好的做法. 建议的做法是把变化放在分支里面. 至少应该准备一个feature分支之类的, 把变化都隔离开来, 然后等到所有的功能都稳定之后再合并到m ...
- git 出现冲突时的解决办法
<一> 二者兼得最麻烦 1, 出现冲突一般出现在群体开发两个及以上开发者同时修改同一个文件时 2, 具体表现为 git pull , git push 和 git commit 命令执行失 ...
- git文件冲突合并的报错:Your local changes to the following files would be overwritten by merge
记录一下在项目里使用git遇到代码冲突时的解决方法 问题:当我和我同事两个人改了相同的一个文件,他在我提交前提交了,这时候我就提交不了了,并且也pull不下来他的代码 会报错: Your local ...
随机推荐
- Install Ruby on Rails on Ubuntu 12.04 LTS
1:Update package repository. sudo apt-get update 2:Install git and Curl. Git:是一个简单,快速,高效的版本控制系统. ...
- PHP实现RabbitMQ的Publish/Subscribe
<?php /** * Created by PhpStorm. * User: 豆腐居士 * Date: 2018/5/30 * Time: 上午11:01 */ class AqiTask ...
- Linux ClientDataSet libmidas.so.2
Linux ClientDataSet libmidas.so.2 DELPHI LINUX程序使用CLIENTDATASET控件,部署的时候需要libmidas.so,相当于WINDOWS程序的MI ...
- IOS 开发之 Method Swizzling
ios 分类中如果增加的方法与被扩展的类方法名重复,则原方法就没法被调用….看以下例子 例如: @interface ClassA : NSObject - (NSString *) myMethod ...
- linux df -h卡成狗
linux执行df -h命令,直接卡在,很久没有任何动静 strace df -h跟踪命令执行,查看卡在那里 还有可能就是重做系统吧,检测下内存条是不是坏了等 http://blog.51cto.co ...
- MFC 文档视图关系
参考:http://www.360doc.com/content/11/1102/09/3054335_160991088.shtml 写的很详细可以看看 IDC_:控件的ID命名前缀(Control ...
- centos网络配置实例
1.配置DNS vim /etc/resolv.conf nameserver 192.168.0.1 nameserver 8.8.8.8 nameserver 8.8.4.4 2.配置网关 r ...
- js 小总结
数组操作 创建数组:var standTerm = new Array("维护","维修"); var arr = new Array(); 数组长度:leng ...
- java使用Runtime.exec()运行windwos dos或linux shell命令
使用Runtime.exec()运行windwos dos或linux shell命令,按实际情况具体测试 实例代码: package com.bookoo.test.command; imp ...
- 浏览器前缀-----[译]Autoprefixer:一个以最好的方式处理浏览器前缀的后处理程序
Autoprefixer解析CSS文件并且添加浏览器前缀到CSS规则里,使用Can I Use的数据来决定哪些前缀是需要的. 所有你需要做的就是把它添加到你的资源构建工具(例如 Grunt)并且可 ...