我想比较两个文件,一个文件在另一个分支中,另一个是当前分支中同一文件的未提交版本。所以我这样做:
git difftool other_branch_name file_to_compare
现在我想在当前分支中编辑未提交的版本,但我不能,因为vimdiff以只读模式打开...
那么使用git difftool并允许修改的解决方案是什么?
答案 0 :(得分:3)
我不知道调用vimdiff所需的特定命令,以便在写入模式下打开未提交的文件, 但通常 ,git确实有配置您可以使用设置来设置在使用git difftool
时调用difftool的方式。请参阅the git difftool doc和the git config doc中的difftool.<tool>.cmd
设置:
difftool.<tool>.cmd
指定调用指定diff工具的命令。在shell中使用以下变量评估指定的命令:
$LOCAL
设置为包含diff前映像内容的临时文件的名称,$REMOTE
设置为临时名称包含diff后映像内容的文件。
所以你可以做这样的事情来配置你的difftool:
$ git config --global difftool.myDifftool.cmd \
"myDifftool --read-only-flag $LOCAL --editable-flag $REMOTE"
基于Vimdiff multiple windows different read/write permission mah posted的链接,我想您可以通过这种方式为vimdiff配置difftool
,但我不确定vimdiff选项是否确实正确:< / p>
$ git config --global difftool.vimdiff.cmd \
"vimdiff -R $LOCAL -c ':se noreadonly' $REMOTE"
答案 1 :(得分:2)
为什么不创建另一个版本的临时文件:
git show other_branch_name:file_to_compare > diff.file_to_compare
vimdiff file_to_compare diff.file_to_compare
rm -rf diff.file_to_compare