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

lan*_*nte 7 git cmd

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

我试图从cmd设置以下部分时遇到麻烦:

[mergetool "p4merge"]
    cmd = p4merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
Run Code Online (Sandbox Code Playgroud)

我试过了:

git config --global mergetool.p4merge.cmd "p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Run Code Online (Sandbox Code Playgroud)

但结果是:

[mergetool "p4merge"]
    cmd = p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
Run Code Online (Sandbox Code Playgroud)

我应该如何从cmd中删除双引号?

Von*_*onC 5

Windows 上的 Git:您如何设置合并工具? ”的答案建议:

  • 从 git bash 会话:
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
Run Code Online (Sandbox Code Playgroud)
  • 或者,从 Windows cmd.exeshell,使用 3 个双引号"""来转义一个"
git config --global mergetool.p4merge.cmd "p4merge.exe """$BASE""" """$LOCAL""" """$REMOTE""" """$MERGED""""
Run Code Online (Sandbox Code Playgroud)

所以这取决于你是启动git-bash.bat还是git-cmd.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""""
Run Code Online (Sandbox Code Playgroud)

  • @ivan_pozdeev 是在变基期间吗(远程和本地颠倒:/sf/answers/207252601/)? (2认同)