我想比较两个文件,一个文件在另一个分支中,另一个是当前分支中同一文件的未提交版本。所以我要:
git difftool other_branch_name file_to_compare
现在我想在当前分支中编辑未提交的版本,但是我不能,因为vimdiff是以只读模式打开的…
那么,使用git difftool并允许修改的解决方案是什么?
最佳答案
我不知道调用vimdiff以使未提交的文件以写模式打开所需的特定命令,但一般来说,git确实有配置设置,可以用来设置在使用git difftool
时如何调用difftool。参见the git difftool doc和the git config doc中的difftool.<tool>.cmd
设置:difftool.<tool>.cmd
指定调用指定diff工具的命令。在shell中使用以下可用变量计算指定的命令:$LOCAL
设置为包含diff pre-image内容的临时文件的名称,$REMOTE
设置为包含diff post-image内容的临时文件的名称。
所以您可以这样配置difftool:
$ git config --global difftool.myDifftool.cmd \
"myDifftool --read-only-flag $LOCAL --editable-flag $REMOTE"
基于到Vimdiff multiple windows different read/write permission的链接,我想您可以这样为vimdiff配置
difftool
,但我不确定vimdiff选项是否真的正确:$ git config --global difftool.vimdiff.cmd \
"vimdiff -R $LOCAL -c ':se noreadonly' $REMOTE"