gpt4 book ai didi

git - 如何使用 msysgit/gitk 设置 DiffMerge?

转载 作者:IT王子 更新时间:2023-10-29 01:16:55 24 4
gpt4 key购买 nike

我刚开始使用 Git,可能我错过了一些明显的东西,但这里是:

  • 我在 Windows XP 上使用 msysgit 1.6.2.2
  • 安装时,我选择选项 1 为“仅使用 Git Bash”

我正在尝试整理一个包装器脚本,我可以用它来用 DiffMerge 替换内置的 git diff。基于this thread在 SO 上,我创建了以下批处理文件:

@echo off
REM ---- Switch forward slashes to back slashes ----
set oldW=%2
set oldW=%oldW:/=\%
set newW=%5
set newW=%newW:/=\%

REM ---- Launch DiffMerge ----
"C:/Programs/SourceGear/DiffMerge/DiffMerge.exe" /title1="Old Version" %oldW% /title2="New Version" %newW%

我将 bat 文件放在 %GIT_INSTALL%/cmd 下并按如下方式编辑我的 .gitconfig 文件:

[diff]
external = C:/Programs/git/cmd/git-diff-wrapper.bat

如果我启动 Git Bash 并执行 git diff HEAD HEAD~ -- 我的文件

我收到一条消息 File (\dev\null) not found - 考虑到我在 Windows 上,这并不奇怪。

继续,我启动了 gitk 并在 Edit>Preferences 下,我选择了相同的包装脚本。为特定文件尝试“外部差异”选项会给出神秘的错误消息 Unknown Option "

很明显,我不知道自己在做什么,所以非常感谢任何帮助。

最佳答案

我在互联网上到处寻找这个问题的答案。我尝试了上面和其他地方的所有解决方案。我可以让 merge 部分工作而不是差异部分,反之亦然。所以我最终所做的是根据我在互联网上获得的所有对我有用的信息,将我自己的简单解决方案组合在一起。它不需要任何脚本,只要你编辑你的 .gitconfig 它通常位于以下目录 C:\Documents and Settings\[username] 你需要有已安装 DiffMerge 程序。

这是我的 .gitconfig 文件的相关摘录。您只需要编辑您的 DiffMerge 版本所在的路径。 注意我在路径中使用了旧的 DOS 8.3 格式

[diff]
tool = diffm
[difftool "diffm"]
cmd = "H:/PROGRA~1/SourceGear/DiffMerge/DiffMerge.exe $LOCAL $REMOTE"
prompt = false

[merge]
tool = diffmerge
[mergetool "diffmerge"]
cmd = "H:/PROGRA~1/SourceGear/DiffMerge/DiffMerge.exe --merge --result=$MERGED $LOCAL $BASE $REMOTE"
trustExitCode = false
keepBackup = false

如果您愿意,也可以使用命令 git config --replace --global [options] 进行设置。


这个简单的解决方案也非常适合我。对于较新版本的 DiffMerge (3.3.1),需要更改命令路径:

    cmd = "C:/PROGRA~1/SourceGear/Common/DiffMerge/sgdm.exe ...etc..."

关于git - 如何使用 msysgit/gitk 设置 DiffMerge?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com