我正在尝试将opendiff设置为图形git difftool。换句话说,我希望opendiff打开图形窗口并在命令行上输入git difftool
时显示文件更改。我已经在我的~/.gitconfig
中添加了以下配置:
[diff]
tool = opendiff
[difftool]
prompt = false
[difftool "opendiff"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
当我在大多数存储库中运行git difftool
时,它会按我的意愿打开opendiff,但是在一个特定的仓库中,它总是只向我显示终端中的文本差异。
我在两个存储库中都运行过git config --list
,唯一的不同是您期望的-源名称和分支名称,等等-所有diff设置都是相同的。
那么-还有什么可能导致git在这两个存储库中以不同的方式工作?
编辑:
行为不佳的回购协议.git/config
的内容,略作编辑:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@<ORIGIN_URL>
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "develop"]
remote = origin
merge = refs/heads/develop
[branch "feature/FEATURE1"]
remote = origin
merge = refs/heads/FEATURE1
[branch "feature/FEATURE2"]
remote = origin
merge = refs/heads/FEATURE2
EDIT2:
这是两个存储库中git config --list
之间的差异,略作编辑:
40c40
< remote.origin.url=git@<GOOD_REPO_URL>
---
> remote.origin.url=git@<BAD_REPO_URL>
42,43c42,47
< branch.master.remote=origin
< branch.master.merge=refs/heads/master
---
> branch.develop.remote=origin
> branch.develop.merge=refs/heads/develop
> branch.feature/FEATURE1.remote=origin
> branch.feature/FEATURE1.merge=refs/heads/feature/FEATURE1
> branch.feature/FEATURE2.remote=origin
> branch.feature/FEATURE2.merge=refs/heads/feature/FEATURE2
EDIT3:
好吧,这很尴尬。我再也无法重现此问题!现在,它可以像我期望的那样在两个存储库中运行。我发誓我什么都没改变,伙计们……只是在家而不是工作。小妖精?
答案 0 :(得分:0)
您看到的这种差异可能是本地和全局配置中不同设置的结果。
尝试比较以下内容的输出:
git config --global -l
和
git config --local -l
然后,要更改您描述为调用其他工具的特定存储库的行为,我将尝试进入该存储库并使用--unset
沿
git config --local --unset difftool
或者也许
git config --local --unset diff.tool