当我这样做时,git diff COMMIT我看到了提交和HEAD之间的变化(据我所知),但我希望看到单个提交所做的更改.
我没有在diff/log上找到任何明显的选项,它会给我输出.
在Git中,我如何比较同一分支(例如master)上两个不同提交(不连续)之间的相同文件?
我正在搜索Visual SourceSafe(VSS)或Team Foundation Server(TFS)中的比较功能.Git有可能吗?
当我输入时git diff,我想用我选择的视觉差异工具(Windows上的SourceGear"diffmerge")查看输出.如何配置git来执行此操作?
虽然这个问题和答案中的大部分信息都可以在StackOverflow上获得,但它分布在许多页面以及其他错误或误导性的答案中.我花了一段时间拼凑出我想知道的一切.
有很多不同的程序可以用作你的git difftool和mergetool,对于哪个是最好的(意见,要求和操作系统明显不同)肯定没有共识.
Meld是一个流行的跨平台(UNIX/Linux,OSX,Windows)选择,如StackOverflow问题所示,什么是Git最好的可视化合并工具?其中提出梅尔德的答案的答案是其他任何工具的3倍以上.
我的答案将在下面回答以下两个问题:
注意:没有必要使用与difftool和mergetool相同的程序,可以为两者设置不同的程序.
最近我使用的是GitExtension 2.46,但具有相同功能的Git版本是1.9.4.msysgit.2.我只想使用Git命令,我卸载了GitExtension并安装了Git和KDiff3的最新版本.
当我进行合并并发生冲突时,我运行以下命令:
$ git mergetool
Run Code Online (Sandbox Code Playgroud)
然后我收到消息:
合并工具kdiff3不能用作'kdiff3'.
我猜它必须是KDiff3路径.
环境
问题:
我必须在.gitconfig文件中配置如何$ git mergetool使用版本LOCAL,REMOTE,BASE和MERGED冲突文件打开KDiff3 GUI 的命令?
如何配置它使用它有diff-tool?
我已经设定:
git config --global merge.tool meld
git config --global mergetool.meld.path c:/Progra~2/meld/bin/
Run Code Online (Sandbox Code Playgroud)
在"git mergetool"上写道:
Hit return to start merge resolution tool (meld):
The merge tool meld is not available as 'c:/Progra~2/meld/bin/'
Run Code Online (Sandbox Code Playgroud)
我也试过了:
结果是一样的.
当我转到C:/ Program files(x86)/ meld/bin /并运行时
python meld
Run Code Online (Sandbox Code Playgroud)
该工具运行.
在我提交更改之前,我希望在GIT中使用BeyondCompare看到差异.如何配置BeyondCompare以查看文件中的差异.
我查看了这个链接,但没有帮助.
BeyondCompare安装在我系统中的这个位置: C:\program files\Beyond Compare\BCompare.exe
我运行了以下两个命令:
git config --global merge.tool bc
git config --global mergetool.bc.path "C:\program files\Beyond Compare\BCompare.exe"
Run Code Online (Sandbox Code Playgroud)
我在Windows 7上使用GIT.
谢谢 !!
由于git diff在powershell中主要导致无法读取的空白或奇怪字符,我安装了Perforce P4Merge来处理合并和差异.
但是,我无法git diff打开p4merge应用程序来查看diff.到目前为止,我的.gitconfig看起来像这样:
[diff]
tool = p4diff
[difftool "p4diff"]
external = 'C:/PROGRA~1/Perforce/p4merge.exe "$LOCAL" "$REMOTE"'
prompt = false
[merge]
keepBackup = false
tool = p4merge
[mergetool "p4merge"]
cmd = "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
path = 'C:/PROGRA~1/Perforce/p4merge.exe'
prompt = false
keepBackup = false
keepTemporaries = false
trustExitCode = false
Run Code Online (Sandbox Code Playgroud)
路径是正确的.但是,唉,git仍然试图在使用时在Powershell中呈现差异git diff.
那么这项工作的诀窍是什么?
有没有办法让git差异的输出格式像cvs样式差异?我发现git diffs的可读性较差.此外,出现的git差异more很烦人 - 我怎么能禁用它?