Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Windows上的GIT中进行合并?_Java_Windows_Eclipse_Git - Fatal编程技术网

Java 如何在Windows上的GIT中进行合并?

Java 如何在Windows上的GIT中进行合并?,java,windows,eclipse,git,Java,Windows,Eclipse,Git,我尝试使用GIT,但对我来说,最大的问题是没有合并工具。至少msysgit没有给我任何东西。如何在GIT中合并?有什么很棒的工具吗?或者我必须使用WinMerge或类似的应用程序吗 我建议使用Java和Eclipse。安装它并放置类似以下内容: [merge] tool = kdiff3 [mergetool "kdiff3"] path = c:/Program Files (x86)/KDiff3/kdiff3.exe [diff] tool

我尝试使用GIT,但对我来说,最大的问题是没有合并工具。至少msysgit没有给我任何东西。如何在GIT中合并?有什么很棒的工具吗?或者我必须使用WinMerge或类似的应用程序吗

我建议使用Java和Eclipse。安装它并放置类似以下内容:

[merge]
        tool = kdiff3
[mergetool "kdiff3"]
        path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[diff]
        tool = kdiff3
        guitool = kdiff3
[difftool "kdiff3"]
        path = c:/Program Files (x86)/KDiff3/kdiff3.exe
在您的
.gitconfig

要编辑全局配置(.gitconfig):
gitconfig--global--edit


计算机上的安装路径可能不同于
c:/ProgramFiles(x86)/KDiff3/KDiff3.exe
。用kdiff3二进制文件的实际路径替换上面的字符串。不要忘记你必须使用前斜杠,
/
,而不是像本机程序那样使用后斜杠(
\
)。

Kdiff3是一个很好的合并工具,我喜欢与git结合使用

对于我(windows xp、kdiff3 0.9.96和git 1.7.5.1),Jan Hudec的回答不起作用。以下是我的设置:

[diff]
        tool = kdiff3
        guitool = kdiff3

[difftool]
        prompt = false

[difftool "kdiff3"]
        path = /home/username/bin/difftool-kdiff3.sh


实际上,您不需要另一个专门用于合并的工具,因为任何像样的Git提供商都应该能够处理这个问题,即使是msysgit本身。在您需要像WinMerge这样的GUI的情况下,有一个EGit,它是Eclipse的Git团队提供程序,尽管它的合并功能可能有些不稳定,因为该项目还是相对较新的。还有一个我在Windows(包括merge)上的大多数git操作中使用的Ortoisegit。

既然您提到使用Eclipse,您可以使用它,它提供了一种方便的方法来处理冲突:


澄清一下:您需要一个工具,当您遇到冲突时可以帮助您进行三方合并,对吗?(git所做的核心工作之一是合并;它只是让您来解决冲突。)要编辑全局配置(.gitconfig):
git-config--global--edit
^这也应该添加到答案中:顺便说一下,默认安装位置可能是c:/Program Files/KDiff3/KDiff3.exe PortableGit1.9.5,Win7-64位,c:/Program Files/KDiff3/KDiff3.exe,将值添加到全局.gitconfig(使用/Program Files/folder),git config--获取打印正确的值,git difftool file1.txt file2.txt不执行任何操作,gif difftool——没有索引文件1.txt file2.txt sysout一个旧的文本diff格式,我在git resository中(git状态良好)。奇怪。^跳过这个。没有意识到$git difftool在回购协议没有更改的情况下不会执行任何操作。它不是一个独立的diffing命令。制作了home/bin/difftool批处理脚本,现在可以从gitportable控制台运行独立diffing和repo diffing。如果将Cygwin Git与本机KDiff3一起使用,则需要使用
cygpath
来使用此包装器。但我更喜欢MSysGit,尽管我主要是从cygwin shell使用它(我已经在/c/、/d/等上安装了磁盘,然后msys工具不需要翻译就能理解路径;真正的原生工具仍然不需要)。
#!/bin/sh

# Passed the following parameters from git
#  --auto --L1 "somefile (A)" --L2 "somefile (B)" /tmp/4VhUw0_somefile somefile

LOCAL=$6
REMOTE=$7

"C:/Program Files/KDiff3/kdiff3.exe" $(cygpath -w "$LOCAL") "$REMOTE"