为了账号安全,请及时绑定邮箱和手机立即绑定

git difftool,立即打开所有差异文件,而不是以串行方式打开

git difftool,立即打开所有差异文件,而不是以串行方式打开

Git
四季花海 2019-11-05 15:40:20
默认的git diff行为是依次打开每个diff文件(等待上一个文件关闭后再打开下一个文件)。我正在寻找一次打开所有文件的方法-例如,在BeyondCompare中,这将打开同一BC窗口中选项卡中的所有文件。这样可以更轻松地审查一组复杂的更改;在diff文件之间来回滑动并忽略不重要的文件。
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

从gitv1.7.11 开始,您可以git difftool --dir-diff用来执行目录差异。


例如,此功能与Meld 3.14.2配合使用,可以浏览所有修改的文件:


git difftool --dir-diff --tool=meld HEAD~ HEAD

这是一个方便的Bash函数:


git-diff-meld() (

  git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"

)

以下答案适用于git早于v1.7.11的安装。


在git邮件列表上也问过同样的问题。


我根据该电子邮件线程整理了一个shell脚本,该脚本在任意提交之间执行目录差异。


从git v1.7.10开始,该git-diffall脚本包含在contrib标准git安装的中。


对于v1.7.10之前的版本,可以从GitHub上的git-diffall项目安装。


这是项目说明:


git-diffall脚本为git提供了基于目录的diff机制。该脚本依靠diff.tool配置选项来确定使用哪种diff查看器。


该脚本与用于指定diff修订范围的所有格式兼容:


1)git diffall:显示工作树和已执行的更改之间的差异

2)git diffall --cached [<commit>]:显示工作树和已更改HEAD (或其他命名的提交)之间的差异

3)git diffall <commit>:显示工作树和已命名的提交之间的差异

4)git diffall <commit> <commit>:显示两个命名提交之间的差异

5)git diffall <commit>..<commit>:相同如上

6)git diffall <commit>...<commit>:显示包含且直到第二个分支的变化,从两个分支的共同祖先开始<commit>


注意:所有表格均采用可选的路径限制器 [--] [<path>]


该脚本基于Thomas Rast在Git列表上提供的示例。


查看完整回答
反对 回复 2019-11-05
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

这就是我所决定的...


将以下代码复制到一个名为git-diffall(无扩展名)的文件中:


#!/bin/sh

git diff --name-only "$@" | while read filename; do

    git difftool "$@" --no-prompt "$filename" &

done

将文件放在cmdgit install dir 的文件夹中(例如C:\Program Files (x86)\Git\cmd)


并像您一样使用git diff:


git diffall

git diffall HEAD

git diffall --cached 

git diffall rev1..rev2

etc...

注意:关键是&参数,它告诉外部diff命令在后台任务中运行,以便立即处理文件。对于BeyondCompare,这将打开一个屏幕,每个文件都位于其自己的标签中。


查看完整回答
反对 回复 2019-11-05
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

meld 具有一个巧妙的功能,如果您在源代码管理下为它提供一个目录(Git,Mercurial,Subversion,Bazaar以及其他),它将自动列出所有更改的文件,您可以双击以查看各个差异。


与IMO相比,键入meld .它并弄清楚VCS比配置VCS启动要容易得多meld。另外,无论您的项目正使用哪种VCS,您都可以使用相同的命令,如果您经常在它们之间进行切换,那将非常好。


唯一的缺点是,meld扫描更改要比从git / hg / svn传递更改慢,尽管我确定它是否足够慢而不会成为问题,但这取决于您的使用方式。


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 1125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信