从cmd中转义git config中的双引号

从cmd中转义git config中的双引号,git,cmd,Git,Cmd,我想创建一个批处理文件,用于初始化我的.gitconfig文件中的所有键/值 我无法从cmd设置以下部分: [mergetool "p4merge"] cmd = p4merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 我试过: git config --global mergetool.p4merge.cmd "p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"" 但结果是: [mergetoo

我想创建一个批处理文件,用于初始化我的
.gitconfig
文件中的所有键/值

我无法从cmd设置以下部分:

[mergetool "p4merge"]
    cmd = p4merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
我试过:

git config --global mergetool.p4merge.cmd "p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
但结果是:

[mergetool "p4merge"]
    cmd = p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
我应该如何避免cmd中的双引号?

对“”的回答建议:

  • 从git bash会话:
  • 或者,从windows
    cmd.exe
    shell中,使用3个双引号
    转义一个
所以这取决于您是启动了
gitbash.bat
还是

CMD中的其他示例:

git config --global core.editor """"C:\Users\vonc\AppData\Local\Programs\Microsoft VS Code\Code.exe""" --wait"
# or
git config --global core.editor """"C:/Program Files/Notepad++/notepad++.exe""""

你是从cmd.exe还是git bash中尝试的?我是从cmd运行的,尝试使用带有单引号的其他选项,看看效果是否更好。带有单引号的选项在windows cmd中不起作用:(谢谢你的回答。这是我从
cmd
中尝试的,但我得到的是
cmd=p4merge.exe\$BASE\\\$LOCAL\$REMOTE\”\“$MERGED\”
.gitconfig
文件中,字面意思是(我的意思是带“\”)。这样可以吗?@lante是的,外部引号应该在
.gitconfig
中消失一次。
\”
应该可以工作,但我还是会先测试它。
$LOCAL
$REMOTE
应该按相反的顺序:
\“$BASE\”\“$REMOTE\”\“$LOCAL\”“$MERGED\”
@ivan_pozdeev有趣的是:你有什么链接吗?我自己在p4merge(,,等…)时总是看到基本的本地远程订单。@ivan_pozdeev是在一次重新设置期间(远程和本地颠倒:)?
git config --global mergetool.p4merge.cmd "p4merge.exe """$BASE""" """$LOCAL""" """$REMOTE""" """$MERGED""""
git config --global core.editor """"C:\Users\vonc\AppData\Local\Programs\Microsoft VS Code\Code.exe""" --wait"
# or
git config --global core.editor """"C:/Program Files/Notepad++/notepad++.exe""""