问题标签 [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 投票
3 回答
799 浏览

git - git difftool Beyond Compare 4 不区分本地和远程

我正在使用 CYGWIN 和 Beyond Compare 4 Pro Edition。我已经设置了以下 .gitconfig 文件:

在对本地文件进行小幅更改后,我在 CYGWIN 中运行以下命令:

Beyond Compare 4 可以正确启动,但只有左侧全为红色。右边是空的。

我希望通过将本地更改(左)与远程(右)进行简单比较来启动它。

我假设这是默认行为?我是否缺少其他设置或仅此设置可用

0 投票
2 回答
2211 浏览

git - 如何使 git log 显示相对于当前目录的文件路径?

我正在处理的当前基于 Git 的项目,我通常总是在一个子目录中。

下面是我git log --name-only从存储库根目录的子目录运行命令时的输出。

我如何改为git log输出类似下面的内容?这使得比较列出的文件非常容易,只需复制文件路径并运行,git diff HEAD~ {copied_file_path}而不必手动修改文件路径然后运行命令。

我查看了git log文档,但没有什么特别突出的。我可以编写一个脚本来执行此操作,但我很好奇 Git 是否有内置方式。

0 投票
0 回答
195 浏览

git - git difftool 通过分阶段和非分阶段的变化给出奇怪的结果

meld(例如)被选择用于 git difftool 调用:

给出:

我有一个文件只有分阶段的更改,另一个文件有未分阶段的更改。

当我运行时git difftool,我希望只显示未分级的更改(使用融合)。但令我惊讶的是,我看到它git diff --cc xxx_file_with_staged_changes_xxx被调用了,就在预期的文件合并调用之前,只有未暂存的更改。

然而,GIT 手册指出:

git diff [--options] [--] […​] 这个表格是用来查看你相对于索引(下一次提交的暂存区)所做的更改。换句话说,差异是您可以告诉 Git 进一步添加到索引中但您仍然没有添加的内容。您可以使用 git-add[1] 暂存这些更改。

所以只应该显示未分级的更改,不是吗?git diff并注意在我的情况下产生的奇怪调用git difftool,就在预期调用“difftool”(这里是融合)之前。

0 投票
1 回答
112 浏览

git - git difftool diff 历史版本,显示这么多窗口

当我使用 git difftool 比较 1 个文件的 2 个历史版本时。我遇到了一个问题。我输入命令后,它会显示数百个窗口。

有什么问题?

0 投票
2 回答
7125 浏览

git - 如何配置 Visual Studio 2017 以使用外部 difftool 和 mergetool

我在 git 全局配置中为 difftool 和 mergetool 配置了 DiffMerge。我读到 Visual Studio 尊重全局 git 配置的这种设置。这是我的 git 配置:

但是如果尝试从 Visual Studio 中查看差异,它会打开 vs 自己的差异工具。如何打开或配置打开外部工具?

0 投票
1 回答
41 浏览

git - Overlay A' project over early A project: Seeking Git Use Case/Pattern to delete A files no longer need?

假设具有子目录 (A) 的非版本控制项目目录。一年后,该目录被复制并进行了进一步的开发(A')。

我刚刚将早期版本 A 添加到 Git。本着版本控制的精神,我希望将 A' 文件复制到 A 文件上(毕竟它们是同一个项目),但我试图系统地删除以后 A' 版本中不再存在的 A 文件。

我已经用谷歌搜索了很长一段时间,但似乎无法找到(我敢打赌)经常发生的这种情况的最佳实践,所以我希望有一个众所周知的“秘诀”可以在不写的情况下完成它自定义代码。

是否可以使用 git-diff --diff-filter=D ("Deleted") 来生成 rm's,以便 A 的“残基”不再驻留在源代码管理中?

0 投票
1 回答
820 浏览

git - 为什么 vsdiffmerge 总是打开一个新的 VisualStudio 而不是显示差异

我想使用 vsdiffmerge 作为 git diff 工具。我设置了.git/config以下。

我发现它有时可以很好地工作,但它会打开一个新的 VisualStudio 并且不显示差异选项卡。我尝试删除//t但没有帮助。

我想问两个问题:

  1. 如何让 vsdiffmerge 在打开的 VisualStudio 中打开 diff 选项卡?

  2. 一旦我不想将所有文件输入到y. 我看到我应该按 133 的文件数是 133 y

0 投票
3 回答
6307 浏览

git - 使用远程分支的分阶段或非分阶段更改之间的 Git 差异

有没有办法在远程分支的分阶段/非分阶段更改之间进行 git diff,比如 origin/branch1。git difftool 有类似的选项吗?

或者

有没有办法使用 git 远程分支来区分我的本地文件系统中的更改(忘记暂存或未暂存)?我想要的只是在提交之前检查我的更改。一旦我完成了更改并解决了与远程分支的冲突,这真的很有用。

0 投票
1 回答
1171 浏览

git - 分支之间的 git difftool 目录

这个问题包含两个分开但密切相关的问题:

第一的; 我正在尝试比较位于不同分支中的两个文件(THIS_BRANCH、OTHER_BRANCH)

文件 (file.txt) 路径已在分支之间移动。THIS_PATH\file.txt 和 OTHER_PATH\file.txt(其中 THIS_PATH!=OTHER_PATH)

执行 git difftool THIS_BRANCH OTHER_BRANCH -- THIS_PATH\file.txt 这(预期)产生将文件与不存在的文件进行比较,基本上将其与无比较。

如何使用 git difftool 做到这一点?[我正在使用超越比较(已经配置为我的 git difftool)]

第二; 同样,我想比较来自两个不同分支(THIS_DIR,OTHER_DIR)的两个目录,它们具有不同的路径(THIS_PATH,OTHER_PATH)。再次,使用超越比较作为我的差异工具。这怎么可能实现?

欣赏它。

0 投票
2 回答
628 浏览

git - 具有无可比拟的 Git difftool

我正在尝试比较两个 git 分支。用 git 我会做

使用 Beyond Compare 工具,我尝试过

但现在看起来它正在逐个文件比较分支文件。所以我添加了--dir-diff (-d)标志

但现在我得到一个错误

我该如何解决?