2014-08-27 37 views
7

我想創建一個批處理文件,用於初始化我的.gitconfig文件中的所有鍵/值。cmd中git config中的雙引號轉義

我有麻煩試圖設置從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的雙引號?

+0

你從CMD.EXE或混帳bash的嘗試嗎? – VonC 2014-08-27 19:23:30

+0

我從cmd運行它 – lante 2014-08-27 20:18:05

+0

嘗試使用單引號的其他選項,以查看此效果是否更好。 – VonC 2014-08-27 20:19:05

回答

4

答案 「Git on Windows: How do you set up a mergetool?」 提出:

  • 從混帳bash命令:
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"' 
  • ,或者從Windows cmd.exe殼:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"" 

所以這取決於如果你推出git-bash.batgit-cmd.bat

+0

感謝您的回覆。這就是我從'cmd'試過的,但是我得到了'cmd = p4merge.exe \「$ BASE \」\「$ LOCAL \「\」$ REMOTE \「\」$ MERGED \「'到'.gitconfig'文件中,字面意思(我的意思是,用」\「)。那好嗎? – lante 2014-08-27 20:20:48

+0

@lante是的,外引號應該消失一旦在'.gitconfig'中,'\「'應該可以工作,但我仍然會先測試它 – VonC 2014-08-27 20:22:47

+0

$ LOCAL和$ REMOTE應該是相反的:\ \ $ BASE \」\「 $ REMOTE \「\」$ LOCAL \「\」$ MERGED \「' – 2017-12-17 10:17:18