如何使git mergetool打开的gvimdiff在选项卡中一次打开所有文件?
通常情况下,如何使git mergetool打开的gvimdiff在选项卡中一次打开所有文件?,git,tabs,git-merge,vimdiff,mergetool,Git,Tabs,Git Merge,Vimdiff,Mergetool,通常情况下,git-c merge.tool=gvimdiff mergetool以批处理模式打开要逐个合并的文件: Normal merge conflict for '...': {local}: modified file {remote}: modified file 4 files to edit ... seems unchanged. Was the merge successful? [y/n] n merge of ... failed Continue merging
git-c merge.tool=gvimdiff mergetool
以批处理模式打开要逐个合并的文件:
Normal merge conflict for '...':
{local}: modified file
{remote}: modified file
4 files to edit
... seems unchanged.
Was the merge successful? [y/n] n
merge of ... failed
Continue merging other unresolved paths (y/n) ? y
Normal merge conflict for '...':
{local}: modified file
{remote}: modified file
4 files to edit
modules ... seems unchanged.
Was the merge successful? [y/n] n
merge of modules ... failed
Continue merging other unresolved paths (y/n) ? n
如何使它一次打开所有文件,并使用包含每个要合并文件的四个窗格安排的选项卡(如
gvim-p file1 file2
)来解决每次一个文件中的冲突。因此,你所要求的不能以干净的方式完成。但是,可以创建一个自定义合并工具,该工具将在单个gvim
窗口中累积来自git mergetool
的输入。这个“解决方案”不可避免地要包含的缺陷是,它必须使git mergetool
流相信自定义mergetool已经成功地合并了文件,即使它刚刚在gvim中打开了文件。这是必要的,以便git mergetool
流可以在不询问任何问题的情况下进入下一个文件。因此,如果您退出gvim而不做任何更改,git仍会认为所有冲突都已解决
此类自定义合并工具(在不同的gvim窗口而不是选项卡中打开文件)的草稿版本如下:
.gitconfig:
[mergetool "mygvimdiff"]
cmd=/path/to/mygvimdiff "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
trustExitCode=true
#!/bin/bash
gvim -d -c "wincmd J" "$@"
# wait till gvim loads the temporary files before
# the git mergetool script deletes them
sleep 1
exit 0
git mergetool -t mygvimdiff
mygvimdiff:
[mergetool "mygvimdiff"]
cmd=/path/to/mygvimdiff "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
trustExitCode=true
#!/bin/bash
gvim -d -c "wincmd J" "$@"
# wait till gvim loads the temporary files before
# the git mergetool script deletes them
sleep 1
exit 0
git mergetool -t mygvimdiff
用法:
[mergetool "mygvimdiff"]
cmd=/path/to/mygvimdiff "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
trustExitCode=true
#!/bin/bash
gvim -d -c "wincmd J" "$@"
# wait till gvim loads the temporary files before
# the git mergetool script deletes them
sleep 1
exit 0
git mergetool -t mygvimdiff
git mergetool
flow旨在一次解决一个文件中的冲突。因此,你所要求的不能以干净的方式完成。但是,可以创建一个自定义合并工具,该工具将在单个gvim
窗口中累积来自git mergetool
的输入。这个“解决方案”不可避免地要包含的缺陷是,它必须使git mergetool
流相信自定义mergetool已经成功地合并了文件,即使它刚刚在gvim中打开了文件。这是必要的,以便git mergetool
流可以在不询问任何问题的情况下进入下一个文件。因此,如果您退出gvim而不做任何更改,git仍会认为所有冲突都已解决
此类自定义合并工具(在不同的gvim窗口而不是选项卡中打开文件)的草稿版本如下:
.gitconfig:
[mergetool "mygvimdiff"]
cmd=/path/to/mygvimdiff "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
trustExitCode=true
#!/bin/bash
gvim -d -c "wincmd J" "$@"
# wait till gvim loads the temporary files before
# the git mergetool script deletes them
sleep 1
exit 0
git mergetool -t mygvimdiff
mygvimdiff:
[mergetool "mygvimdiff"]
cmd=/path/to/mygvimdiff "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
trustExitCode=true
#!/bin/bash
gvim -d -c "wincmd J" "$@"
# wait till gvim loads the temporary files before
# the git mergetool script deletes them
sleep 1
exit 0
git mergetool -t mygvimdiff
用法:
[mergetool "mygvimdiff"]
cmd=/path/to/mygvimdiff "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
trustExitCode=true
#!/bin/bash
gvim -d -c "wincmd J" "$@"
# wait till gvim loads the temporary files before
# the git mergetool script deletes them
sleep 1
exit 0
git mergetool -t mygvimdiff
也许最好假装合并失败?就我所做的实验而言,mergetool仍然要求下一个文件。@Vi。那么必须有人回答mergetool的确认才能继续。也许最好假装合并失败?就我所做的实验而言,mergetool仍然要求提供下一个文件。@Vi。然后必须有人回答mergetool的确认,以proceedRelated for difftool:Related non-vimdiff specific:Related for difftool:Related non-vimdiff specific: