我已经配置了p4merge,以便从命令行如果执行“ git difftool ...”,则可以正确打开外部diff工具。
我想从“ git gui”而不是命令行打开外部difftool。这可能吗?
看来git-gui允许一个添加工具。但是我不清楚如何使它工作。有指针吗?
我正在Windows 8.1下的一个更大的项目上运行msysgit 1.8.3.
当我发出时git difftool --dir-diff
,我对左窗格中的源文件执行的任何更改都将保留回工作目录.这很好,是理想的行为.
但是,当我比较树木时,例如:
git difftool --dir-diff --cached
git difftool --dir-diff stash@{0}
git difftool --dir-diff HEAD^
Run Code Online (Sandbox Code Playgroud)
更改未保存.
奇怪的是,当我测试一个较小的项目时,我没有这个问题.在比较大型项目时,似乎存在创建符号链接时的问题.是否有一些我可以用来强制创建符号链接的标志?或者,有没有办法调试为什么git没有创建符号链接?
谢谢.
(*)对于那些熟悉它的人,我正在寻找git-meld的行为,这曾经是完美的.
编辑: 我在另一台PC上的另一个不同项目中发现了这种不一致.所以现在我有两个这样的案例.任何帮助,将不胜感激.
我显然在这里忽略了一些非常简单的内容,但是我没有看到它。命令
webstorm diff ~/test.txt ~/test2.txt
Run Code Online (Sandbox Code Playgroud)
运行JetBrains图形化差异工具。我正在运行git 1.8.3.2并有一个git .config包括
[diff]
tool = webstorm
[difftool "webstorm"]
cmd = webstorm diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE")
[difftool]
prompt = false
Run Code Online (Sandbox Code Playgroud)
当我运行命令时
git difftool ~/test.txt ~/test2.txt
Run Code Online (Sandbox Code Playgroud)
我在终端窗口中得到以下内容:
diff --git a/home/mark/test.txt b/home/mark/test2.txt
index 7379ce2..6ce16f1 100644
--- a/home/mark/test.txt
+++ b/home/mark/test2.txt
@@ -1,2 +1,2 @@
-blah
+bluergh
Run Code Online (Sandbox Code Playgroud)
我在做什么错/不做什么?
我尝试与整个目录差异git-difftool
,我得到以下错误:
$ git difftool -d
/usr/lib/git-core/git-difftool line 266: File exists
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用该--no-symlinks
选项,但这意味着我无法编辑diff工具(meld)中的文件.
$ git --version
git version 1.9.1
Run Code Online (Sandbox Code Playgroud)
这是负责该错误的perl脚本的一部分:
256 # Changes in the working tree need special treatment since they are
257 # not part of the index. Remove any trailing slash from $workdir
258 # before starting to avoid double slashes in symlink targets.
259 $workdir =~ s|/$||;
260 for my $file (@working_tree) {
261 my $dir = dirname($file);
262 unless (-d "$rdir/$dir") {
263 …
Run Code Online (Sandbox Code Playgroud) 我在.gitconfig中有kdiff3的以下difftool配置,
[difftool "kdiff3"]
external = '"C:/Program Files/KDiff3/kdiff3.exe" "$LOCAL" "$REMOTE" --output "$MERGED"'
trustExitCode = false
[difftool]
prompt = false
[diff]
Run Code Online (Sandbox Code Playgroud)
我正在使用以下命令来查看差异文件,
git difftool config/application.config.php -t kdiff3
Run Code Online (Sandbox Code Playgroud)
但是,当kdiff3打开时,我无法编辑该文件。如何在difftool中的kdiff3中编辑文件?
我需要比较我的项目中的两个文件,这是用C#编写的.我可以将WinMerge(或任何其他差异工具)与Visual Studio集成,并从内部轻松使用它吗?
我可以通过winmerge向我展示修改后的文件的差异。但是对于新文件,winmerge会显示一个对话框,提示“左路径无效!”。我希望它将左窗格显示为空白,而右窗格显示文件的内容。
$ git difftool head^ newfile.txt
Run Code Online (Sandbox Code Playgroud)
winmerge对话框:
我在git版本2.8.2.windows.1上
这是我的difftool的git配置:
[diff]
tool = winmerge
[difftool]
prompt = false
[difftool "winmerge"]
cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" -e -ub -wl \"$LOCAL\" \"$REMOTE\"
Run Code Online (Sandbox Code Playgroud)
我想念什么?
我有 2 个文件夹(使用不同的代码),并初始化了 git。但是当我这样做时
git difftool -t meld
Run Code Online (Sandbox Code Playgroud)
一个 repo 工作正常,并询问我是否要在 meld 中打开文件进行比较。另一个只是在控制台中输出所有内容而没有执行meld。
.git/config 文件也是相同的(除了 url)
有谁知道这是为什么?
当 VS Code 用作比较工具时,例如使用git difftool
,它会以红色和绿色显示更改的行。有没有办法突出显示更改的字符(除了线条之外或代替线条)以使它们更加突出?
我需要在我的旧Git中使用类似的设置,以便能够使用difftool.设置不完全相同,因为我偶然删除了我的旧.gitconfig.
[merge]
tool=opendiff
[mergetool]
tool=opendiff
[difftool]
difftool=opendiff
Run Code Online (Sandbox Code Playgroud)
我在家里有一个空的.gitconfig.我仍然可以使用opendiff -tool.这是一个惊喜,因为它应该是不可能的.
Git的difftool设置如何在内部工作?
我以前使用git-diffall,但是作者说这个命令已经过时了git difftool --dir-diff
.
该命令git difftool --dir-diff
无法复制我在difftool中更改的代码,就像git-diffall的--copy-back
选项那样.
我在网上搜索,发现这个,看起来很复杂......:
[PATCH] difftool --dir-diff:复制与工作树匹配的所有文件
当你使用difftool并对代码做了一些改变时你会怎么做?
谢谢
我更喜欢meld
用作差异工具。但是它没有快速解决所有简单冲突的选项,所以在合并的情况下我想使用 kdiff3
我已经设置merge.tool
为 kdiff3 并diff.guitool
融合但git difftool
仍然总是运行 kdiff3
[merge]
tool = kdiff3
conflictstyle = diff3
[diff]
guitool = meld
renames = copies
mnemonicPrefix = true
[difftool]
prompt = false
Run Code Online (Sandbox Code Playgroud)
如何git difftool
运行meld
?
当git difftool --tool=bc3
从Git-Bash 使用时,我为每个文件都有一个BC3窗口.但是要看到下一个窗口我必须关闭前一个窗口.
我想在单个BC3窗口中同时看到所有差异文件作为选项卡.