默认的git diff行为是以串行方式打开每个diff文件(等待先前文件在打开下一个文件之前关闭).
我正在寻找一种方法来同时打开所有文件 - 例如,在BeyondCompare中,这将打开同一BC窗口中选项卡中的所有文件.
这样可以更轻松地查看一组复杂的变化; 在diff文件之间向后和向前翻转并忽略不重要的文件.
我设置git diff包装到vimdiff,使用" Git Diff with Vimdiff "作为指南,除非有许多文件有变化,否则它按预期工作.
当有多个文件有变化并且我运行时git diff,它会打开第一个文件,在退出第一个vimdiff实例后,我会看到以下消息:
external diff died, stopping at filename
Run Code Online (Sandbox Code Playgroud)
这是一种与我以前完全不同的行为.我在过去使用SVN时有类似的设置,在对多个:wq文件进行区分时,我会查看第一个文件,然后编写并退出使用,下一个文件会有差异打开.
Git不是这种情况.我试过了:n[ext],但这样做并没有用原始文件填充左侧窗口,因此可以针对修改后的版本进行区分.
>>git difftool branch1 branch2打开我的difftool(Beyond Compare:BC)与每个在分支之间有差异的文件.我必须在每个文件之后关闭BC,只是为了重新打开下一个文件.
BC可以区分整个目录和多个文件.
有没有办法git difftool同时打开所有文件,或同时扩散整个树?
我在.gitconfig中将Vim配置为git difftool
[diff]
tool = vimdiff
Run Code Online (Sandbox Code Playgroud)
如果N个文件有变化,我必须关闭vim(:qa)才能看到下一个差异.
如何在不退出vim的情况下导航到下一个/上一个差异?
我的〜/ .gitconfig中有以下配置
[diff]
tool = vimdiff
[diftool]
prompt = false
Run Code Online (Sandbox Code Playgroud)
当我启动git difftool时,它默认以只读模式打开缓冲区.我使用它来检查提交之前的更改,并说我发现一些小的更改,如我没有删除的注释掉的行或JS console.log语句,我被迫退出该工具并打开文件并进行更改.我非常想在视觉差异窗口中进行更改.
http://gitlog.wordpress.com/2011/03/30/git-1-7-4-2/ 说""git difftool"没有告诉(g)vimdiff它正在阅读的文件是只读." 从这一点来看,我认为这种只读行为是理想的.
我很想知道为什么在difftool中选择只读行为作为默认行为.
有什么办法可以配置difftool来允许读/写吗?
从git,vimdiff和dirdiff,我看到vim和git diffall脚本的逃逸插件也可以作为替代方案,使这个差异审查过程更容易.使用逃犯是否会开启使用读/写视觉差异模式的可能性?
我需要帮助获取git扩展以使用msysgit运行.我对扩展git-tfs和git-fetchall运气不好,在这两种情况下它都是同样的问题.插件需要放置一个文件放在git可以找到它的位置(git-tfs.exe和git-fetchall.sh).我理解这意味着文件需要位于'PATH'环境变量中的目录中.在这两种情况下,我都陷入了困境:
$ git-diffall
bash: git-diffall: command not found
Run Code Online (Sandbox Code Playgroud)
要么:
$ git-tfs
bash: git-tfs: command not found
Run Code Online (Sandbox Code Playgroud)
当我从常规命令shell运行echo%PATH%时,它显示我的路径变量包括git-diffall和git-tfs所在的目录.我怎么调试这个,或者我错过了什么?在msysgit中有没有办法验证命令搜索路径是否符合预期?