gpt4 book ai didi

Git 和 WinMerge (msysgit)

转载 作者:太空狗 更新时间:2023-10-29 13:10:32 36 4
gpt4 key购买 nike

我已经阅读了关于这个主题的大量问答,并严格按照所有说明进行操作。但是,尝试使用 WinMerge 将 Git 设置为比较和 merge 时,我仍然感到头疼。

我使用 Git 终端执行了以下步骤:

git config --global diff.tool winmerge
git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false

我还在我的 PATH 变量中包含的目录中设置了一个脚本,内容如下:

#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files/WinMerge/WinMergeU.exe" git /e /u /dl "Base" /dr "Mine" "$1" "$2""

当我执行

git mergetool

在 Git 终端中,我看到:

Merging:
first.txt

Normal merge conflict for 'first.txt':
{local}: modified
{remote}: modified
Launching WinMergeU.exe:

所以在我看来,$LOCAL$REMOTE 变量没有将任何内容传递到 winmerge.sh 脚本中。我在这里做错了什么?我必须在配置部分假设它。

最佳答案

与我的 previous answer 相比(或 this onethat one ),您的步骤在 winmerge.sh 脚本

末尾包含一个额外的双引号
    #!/bin/sh    echo Launching WinMergeU.exe: $1 $2    "C:/Program Files/WinMerge/WinMergeU.exe"       git /e /u /dl "Base" /dr "Mine" "$1" "$2""                                               ^                                               |                                    (this shouldn't be here)

也就是说,这些答案是关于使用 winmerge 的 difftool ,不支持 3-way merge (只有local和remote,没有base)。

对于真正的 merge 工具,我推荐 kdiff3 (如“Is it possible for git-merge to ignore line-ending differences? ”)或 araxis (如 "How to set Araxis as diff / merge tool for MSYS git?" 中所述),您可以在其中看到使用的三个 变量(本地、远程和基础)。

关于Git 和 WinMerge (msysgit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045199/

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