git - 为什么 git 在不同的存储库中使用不同的差异工具?
问题描述
我正在尝试将 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
在两个存储库中都运行过,唯一的区别是您所期望的 - 源名称和分支名称,等等 - 所有差异设置都是相同的。
那么 - 还有什么可能导致 git 在这两个存储库中以不同的方式工作?
编辑:
行为不端的 repo 的内容.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
编辑2:
这是两个回购之间的差异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
编辑3:
好吧,这很尴尬......我不能再重现这个问题了!现在它正如我预期的那样在两个存储库中工作。我发誓我没有改变任何东西,伙计们......只是从家里跑而不是工作。小精灵?
解决方案
您看到的这种差异可能是本地和全局配置中不同设置的结果。
尝试比较以下输出:
git config --global -l
和
git config --local -l
然后,要更改您描述为调用不同工具的特定存储库的行为,我会尝试进入该存储库并使用 重置配置--unset
,沿着
git config --local --unset difftool
或者可能
git config --local --unset diff.tool
推荐阅读
- azure - 如何将文本翻译服务添加到我的 Azure 帐户
- jquery - 我怎样才能使这些漂亮的复选框像其他按钮一样通过 AJAX 发布?
- sql - Postgres - 使用 where 子句 + distinct 左连接
- python - 如何优化 Python 中的 if 语句:首先是更可能的情况还是更昂贵的情况?
- python - 在 Windows 上使用 OpenCV 和 Python 进行硬件加速解码(MSMT / IntelMFX / FFMPEG / 任何后端)
- react-bootstrap - 为什么偏移网格道具有时在 react-bootstrap 中不起作用?
- spring - 如何在 Spring Boot 中将不同的 JSON 请求映射到各自的 POJO
- qemu - RISCV - Qemu 和主机之间的文件传输
- python - 没有名为 requests /usr/local/lib/python3.7/site-packages/ 的模块
- php - 在电子邮件正文中显示 html