问题标签 [git-difftool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
317 浏览

git - 与 Beyond Compare 一起使用时如何退出 git difftool?

我已将 Beyond Compare 配置为difftool.

当我运行时$ git difftool,它会打开 BC 中的所有差异文件,但按顺序打开,即第一个差异文件打开,我必须关闭它才能打开下一个差异文件,依此类推。

当文件数太大时,我需要对每个文件重复此操作。有什么办法——

  1. 中途退出 diff 进程并返回$提示符?或者
  2. 在多个选项卡中打开 BC 中的所有差异文件?
  3. 还有什么好主意吗?
0 投票
2 回答
509 浏览

git - Git 在使用 difftool 时抱怨没有这样的文件或目录

我将 git 配置为使用 kdiff3 但它似乎给了我以下错误:

我的配置是:

有什么想法吗?如果这有所作为,我在 linux 上并且我正在使用git version 2.21.0

0 投票
0 回答
87 浏览

git - 有没有办法根据文件扩展名配置 git 以使用不同的 difftool?

我想设置 git 以根据文件扩展名启动不同的 difftool 可执行文件( DiffTool Man-page )。

这可以通过外部脚本或可执行文件来完成。例如,这是一个发布的问答,其中包含可以执行此操作的 shell 脚本:Git shell script for multiple difftools,但是,我的团队主要使用 Windows,这是一个 Unix 解决方案,我更喜欢内置解决方案。

有没有办法通过在我的全局中有不同的[difftool]或部分并使用类似文件的东西来做类似的事情?[diff].gitconfig.gitattributes

我目前正在使用该.gitattributes方法在 git diff 之前解压缩特定的文件扩展名,即存档。是否可以将此方法扩展为基于 ? 中的不同[difftool "mytool"]部分启动不同的 DiffTool .gitconfig

或者,还有其他内置于 git 的方法吗?

0 投票
3 回答
1249 浏览

windows - 使用 VsCode 作为 Git difftool 和 mergetool 一次打开所有文件

目前,我已将 VsCode 配置为我的git difftoolgit mergetool

我的~\.gitconfig文件如下所示:

但是,当我跑步时git difftool,它会问我

有没有办法一次打开所有的差异?能够在文件之间循环而不必关闭它们是很有用的。

0 投票
1 回答
72 浏览

git - 在 git-merge 中使用 vimdiff,如何显示提交 ID?

我正在做一个导致合并冲突的樱桃选择,当我解决它时,默认的合并工具 Vimdiff 被打开。有 4 个窗格,顶部是 Local 、 base 和 remote。但是我注意到基础没有我希望看到的文件版本是否在本地和远程提交之间进行了 git merge-base 。这是 git/vimdiff 中的缺陷吗?我如何才能看到基本窗格中显示了哪个提交?

0 投票
1 回答
101 浏览

git - 在 git 中,如何避免将较小的更正合并到在原始内容的每一行之间插入一行新内容的分支中的冲突?

有人问为什么看似可能的使用 git 的合并与我的代码相似,但是(1)我的有点不同,(2)我寻求解决问题的方法而不仅仅是解释。

编辑:这是我经常需要为许多文件做的事情。我还需要培训非技术人员能够做到这一点。手动合并每个冲突对于我的用例来说将是一个交易破坏者。

master分支上的文件开头为:

我创建了一个名为analysis_1并提交这些更改的分支:

意识到我之前的错误,我检查master并提交了一个修复:

有没有一种方法(策略、算法或 GIT_EXTERNAL_DIFF 工具)可以在没有冲突的情况下合并masteranalysis_1这样我就可以保持如下的更正和分析?

谢谢!

编辑 2:这个问题指出了 wdiff 并引导我尝试提供我想要的差异结果的diff选项。--word-diff下一步是让它用于合并。

编辑 3:似乎基于单词的合并对 SO 有一些可能会产生结果的问题。如果我在其中一个适用的解决方案中找到解决方案,我会更新这个问题。

0 投票
1 回答
144 浏览

git - 使用 git-difftool 显示原始文件名

我使用xxdiffgit-difftool,但其他 GUI diff 工具也有同样的问题。通常,git-difftool必须将要比较的文件保存为名称如/tmp/i2mLYu_MyHeader.h的临时文件。那是一个文件,相对于工作树,可能是client/api/include/MyHeader.h。像xxdiff这样的差异工具会显示临时文件的名称,通常在标题栏中或差异的每一侧上方。这使得理解正在查看的文件变得不方便,尤其是当多个文件具有相同的基本名称时。

有没有办法恢复原始的基于树的路径,以便可以显示它们?必须在 diff 工具周围编写一个包装器就可以了。

谢谢。

吉姆

0 投票
0 回答
352 浏览

git - 如何使用 git difftool 区分 docx 文件

虽然获取 docx 文件的差异并不难

我没有找到一种git difftool 非常方便的方法。调用 diff 的配置:

  • 在 gitattributes 中放置一行*.docx diff=word,其中word只是一个占位符
  • 在 gitconfig 地方

asplaintext是一些将 .docx 转换为纯文本的转换器。

如果我调用git difftool xxx.docx这些工具似乎不适用。我希望使用 difftool 的输出调用 difftool asplaintext,但事实并非如此。

是我太笨了找不到办法,还是这只是git中的一个空白??该功能会非常好,因为我使用gitaheadwhich invokes 和许多其他 gui 后端一样git difftool

0 投票
0 回答
55 浏览

shell - 使用 `diff` 命令仅查看第一行更改

假设我想区分两个文件:

有没有办法只打印第一行更改- 基本上是在检测到第一行更改后告诉 diff 停止工作 - 并打印该更改?

例如,假设 file1 是:

文件2是:

然后我正在寻找一个打印如下内容的工具:

就这样

0 投票
1 回答
178 浏览

git - 是否有任何适用于 Linux 的 GUI diff 工具提供熟悉的 GitHub 布局差异?

现在我正在使用meld,但它仅显示一个文件的差异,如果您更改的文件很少,则必须关闭 meld 窗口,然后它建议为下一个文件打开一个具有差异的新窗口,依此类推。是否有任何 GUI 工具可以在一个窗口中显示所有文件的差异,有点熟悉它在 GitHub 中的完成方式,例如,当您通过拆分模式和东西查看拉取请求更改时?