- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我显然在这里忽略了一些非常简单的东西,但我没有看到它。命令
webstorm diff ~/test.txt ~/test2.txt
运行 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
当我运行命令时
git difftool ~/test.txt ~/test2.txt
我在终端窗口中得到以下信息:
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
我做错了什么/没做什么?
最佳答案
运行:
GIT_TRACE=1 git difftool --tool-help
打印可与 --tool
一起使用但不可用的 diff 工具列表。
其次,我相信以下简化示例可能会更好:
[difftool "webstorm"]
cmd = webstorm diff "$LOCAL" "$REMOTE"
或者通过指定二进制文件或脚本的路径,例如
[difftool]
prompt = NO
external = /usr/local/bin/diffmerge
通过以下方式检查差异配置:
git config --get-regex diff
或者更具体地说(将 webstorm
替换为您的工具名称):
git config --get difftool.webstorm.cmd
如果仍然不起作用,请在新存储库上测试它,例如通过执行以下命令:
mkdir ~/git_test && cd ~/git_test
git init && touch file && git add file && git commit -m'Adds file' -a
echo changed >> file
GIT_TRACE=1 git difftool
如果以上有效,请确保您的存储库配置没有任何意外,例如
more "$(git rev-parse --show-toplevel)"/.git/config
如果你处于 merge 状态(通过git status
检查),你需要使用mergetool
,例如
git mergetool
添加-t tool
指定使用哪个工具。 git mergetool --tool-help
可用的列表。
另见 man git-difftool
:
CONFIG VARIABLES
git difftool falls back to git mergetool config variables when the difftool equivalents have not been
defined.
diff.tool
The default diff tool to use.
diff.guitool
The default diff tool to use when --gui is specified.
difftool.<tool>.path
Override the path for the given tool. This is useful in case your tool is not in the PATH.
difftool.<tool>.cmd
Specify the command to invoke the specified diff tool.
See the --tool=<tool> option above for more details.
difftool.prompt
Prompt before each invocation of the diff tool.
关于git difftool 运行 git diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23855212/
这个问题在这里已经有了答案: Why does "git difftool" not open the tool directly? (2 个答案) 关闭 6 年前。 当使用 git difftoo
我有 2 个文件夹(具有不同的代码)并初始化了 git。但是当我这样做的时候 git difftool -t meld 一个存储库运行良好,并询问我是否要在 meld 中打开文件进行比较。另一个只是在
我正在使用 kdiff3 作为 difftool。当我使用 git difftool 命令时,它还会向我显示完全相同的文件。甚至 kdiff3 也会 pop 一条消息,指出这些文件是“二进制相等的”(
当我执行 git difftool 时,我收到消息 Hit return to launch 'araxis':。我发现我可以通过按 CTRL-C 来终止整个比较,但是跳过单个文件怎么样? 这可能吗?
我的 ~/.gitconfig 中有以下配置 [diff] tool = vimdiff [diftool] prompt = false 当我启动 git difftool 时,它默
是否可以让 git difftool 命令打开一个目录,比较更改的文件和暂存/检查的文件? 理想情况下,如果有 2 个文件已更改,它们将是唯一显示的 2 个,但在目录比较中。 我读过有关让 git 并
我已将我的 git difftool 设置为使用 winmerge。它已经工作了很长一段时间。但是今天突然不行了。 git difftool 曾经在脏文件上一个接一个地调用 winmerge,但现在不
我已将 Meld 配置为我的 difftool。我很确定它配置正确,因为如果我这样做 git config -l ,我得到 merge.tool=meld diff.tool=meld mergeto
我正在尝试在 Windows 8.1 系统上的 Git Bash 中使用 KDiff3 作为 difftool,我承认我对 Git 很陌生。当我尝试将暂存文件与提交文件进行比较时,我无法打开 KDif
我已经将 Beyond Compare 配置为 difftool。 当我运行 $ git difftool 时,它会打开 BC 中的所有 diff 文件,但顺序是,即第一个 diff 文件打开,我必须
我使用 Windows 版 git bash 和 Beyond & Compare 作为我的差异工具(但同样的事情发生在任何外部差异工具上)。 我希望我的终端不要等待 difftool 退出以返回终端
我在文件 .gitconfig 中为 KDiff3 配置了以下 difftool, [difftool "kdiff3"] external = '"C:/Program Files/KDif
看来git difftool执行外部命令时,没有正确引用参数。 如果 .gitconfig 包含以下几行: [difftool.echo] cmd = echo "$LOCAL" "$REMOTE
我有许多新文件以及一些已添加到我的分支的修改过的文件,当我执行 git difftool master 时,它会比较所有修改过的文件并打开所有新文件。我看到类似的东西 Launching WinMer
我这样配置 git: git config --global diff.tool meld 当我运行时: git difftool 我收到以下消息: Viewing: 'hello.txt' Hit
是否可以通过 git add --patch 配置 Git 以使用我配置的 difftool? 我想通过我自己的 difftool 选择要添加到索引的更改。 最佳答案 不,不幸的是。 我想我可以看到工
默认的 git diff 行为是依次打开每个 diff 文件(在打开下一个文件之前等待上一个文件关闭)。 我正在寻找一种同时打开所有文件的方法 - 例如,在 BeyondCompare 中,这将在同一
这个问题在这里已经有了答案: Show both staged & working tree in git diff? (3 个答案) 关闭 5 年前。 有没有办法查看同一文件的 staged 和
当使用“git difftool”时,当其中一个文件是最新版本时,它会将相对路径传递给外部 diff 应用程序。 ~/.gitconfig [difftool "echo"] cmd = ec
我想在单一 View 中查看对所有文件的更改,如图所示;最好选择两个修订版并从 GUI 启动 diff。 我能得到的最接近的是启动 git difftool -t meld -d 2e9c5b 4fc
我是一名优秀的程序员,十分优秀!