当我输入时git diff
,我想用我选择的视觉差异工具(Windows上的SourceGear"diffmerge")查看输出.如何配置git来执行此操作?
微软已经为Visual Studio 2012发布了一个Git插件.我发现它很棒,但似乎没有任何选项可以更改默认的Diff工具.更糟糕的是,我无法对ascx代码隐藏文件做差异.它仅显示主.ASCX文件的diff选项.
你怎么
在.gitconfig
文件中我按如下方式设置了git diff:
[diff]
tool = kdiff3
[difftool "kdiff3"]
path = path_directory/kdiff3.app
Run Code Online (Sandbox Code Playgroud)
在此设置中,无法访问kdiff,当我在终端中运行时出现以下错误
>> git difftool
The diff tool kdiff3 is not available as 'Kdiff_local_software_path/kdiff3.app'
fatal: external diff died, stopping at modified_file
Run Code Online (Sandbox Code Playgroud)
你有什么建议可以解决这个问题吗?在我目前的设置Mac OS 10.10.5 git diff工具是git merge tool
我想用kdiff替换.
当尝试使用git启动Beyond Compare时,我收到此错误:
diff工具bc3不能用作'bcompare'
致命:外部差异死亡,停在插件/ PushPlugin.m
设置差异工具:
$ git config --global diff.tool bc3
Run Code Online (Sandbox Code Playgroud)
尝试比较目录:
$ git difftool plugins
Viewing (1/2): 'plugins/PushPlugin.m'
Launch 'bc3' [Y/n]: y
Run Code Online (Sandbox Code Playgroud) 大家好,我的问题是关于git diff
,我想知道如何git diff master origin/master
在VSCODE终端上的命令中以文件形式查看,我git fetch
从远程存储库中执行了一个操作,现在我想查看差异,但命令仅显示我在航站楼。我正在努力得到这样的东西...
我想要的例子:
我在git全局配置中为difftool和mergetool配置了DiffMerge.我读到Visual Studio尊重全局git配置的这些设置.这是我的git配置: -
git config --global --list
difftool.DiffMerge.cmd='C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' $LOCAL $REMOTE
merge.tool=DiffMerge
mergetool.DiffMerge.cmd='C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result=$PWD/$MERGED $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE
mergetool.DiffMerge.trustexitcode=true
user.name=masiboo
user.email=masiboo@gmail.com
但如果尝试从visual studio看到diff,它会打开vs自己的diff工具.如何打开或配置打开外部工具?谢谢advanc!
我知道我们应该使用命令“git mergetool”来解决冲突并使用“git difftool”来比较更改。但是我们如何在github windows中将SourceGear DiffMerge设置为github mergetool和difftool呢?
我想使用 vsdiffmerge 作为 git diff 工具。我在.git/config
下面设置。
[diff]
tool = vsdiffmerge
[difftool]
prompt = true
[difftool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsDiffMerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
keepbackup = false
trustexistcode = true
[merge]
tool = vsdiffmerge
[mergetool]
prompt = true
[mergetool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsDiffMerge.exe\" \"$LOCAL\" \"$REMOTE\" //t //m
keepbackup = false
trustexistcode = true
Run Code Online (Sandbox Code Playgroud)
我发现它有时可以很好地工作,但它会打开一个新的 VisualStudio 并且不显示差异选项卡。我尝试删除//t
但没有帮助。
我想问两个问题:
如何让 vsdiffmerge 在打开的 VisualStudio 中打开 diff 选项卡?
一旦我不想将所有文件输入到 .git 文件,如何使用 git …
git difftool
在存储库中调用时,git会将本地存储库中的已修改文件与远程中的匹配项进行比较.要做到这一点,它为远程的临时文件,设置变量LOCAL
和REMOTE
取工具在Git的配置的差异列表中指定和调用.
默认情况下,将在中创建临时文件/tmp/<hash>_filename
.是否可以更改此默认位置?
长话短说,我通过windows子系统使用git for linux,我想使用windows工具做差异和合并.问题是,/tmp
无法从Windows端访问,因此我需要将git创建临时文件的默认位置移动到Windows可访问的位置.
到目前为止,我所能找到的只是一个建议,sudo mount -B /tmp /mnt/c/tmp
但这似乎不起作用(/tmp
仍然指向与以前相同的目录...)
我不确定发生了什么,但我只是将 diff 工具设置为由 git difftool 调用,但是 difftool 遇到的第一个文件以标准 diff 方式显示 - 在控制台上逐行替换
diff --cc path/to/file.c
index ac1b99f,da29e2e..0000000
--- a/path/to/file.c
+++ b/path/to/file.c
@@@ -186,18 -133,20 +188,18 @@@
code code code code
more code more code more code
-- old code old code old code [displayed in red]
++ new code new code new code [displayed in green]
even more code even more code
yet more code yet more code
Run Code Online (Sandbox Code Playgroud)
这似乎是 diff 的一个特例,因为它有--cc
标志和三重@
符号 ( @@@
) 而不是双符号( @@ …
git ×10
git-difftool ×10
git-diff ×2
diff ×1
diffmerge ×1
difftool ×1
git-fetch ×1
kdiff3 ×1
macos ×1
osx-leopard ×1