在Git中,有没有一种比较两个文件的方法,可以忽略它们之间的格式变化?

4
我已经提交了一些按照某种格式编写的代码,但源代码有其他格式。审核人员要求我撤销所有更改,我正在寻找一些UI工具或Git中的方法来去除格式并给出实际结果。

你听说过 git diff 吗?如果没有,你可以在这里阅读相关信息:http://git-scm.com/docs/git-diff。 - 2016rshah
1
保存两个文件,旧的和新的,并使用Sublime Text进行差异比较。如果您的格式问题是制表符与空格(存储库所有者有点讨厌),Sublime还允许您进行转换。在“视图”->“意图”下。 - fontophilic
我正在使用 git diff 命令,它显示所有行更改,因为两个文件的格式不同。 我对 GIT 还有点生疏,想使用 git UI 而不是命令。 在 SVN 中,我通常将我的文件和源文件复制到一个 diff 工具中进行比较。 但现在在 GIT 中,我无法将两个文件分别从 GITHUB 复制。 - pramod bhargava
3个回答

8

我认为你可以查看git diff命令,特别是以下两个选项:

-b, --ignore-space-change
   Ignore changes in amount of whitespace. This ignores whitespace at line end, and considers all other sequences of one or more whitespace characters to be equivalent.

-w, --ignore-all-space
   Ignore whitespace when comparing lines. This ignores differences even if one line has whitespace where the other line has none.

因此运行git diff --ignore-all-space

但是,如果你所定义的格式不仅仅是空格,我想你必须手动进行操作。


谢谢,我猜这会解决我50%的问题,但仍需要弄清格式方面的东西。 - pramod bhargava
我正在使用Eclipse默认格式化程序,而审核人员正在使用Intelij格式化程序。因此,当他提交格式更改时,当我提交格式更改时,我基本上是指括号的放置、方法名称的断开等。因此,在删除空格后,我仍然可以看到一些我没有做过的更改。 - pramod bhargava

1
如果您使用的是Intellij,请考虑使用其提供的版本控制工具。
以下链接详细介绍了如何获取两个分支之间的差异。https://dev59.com/qGkw5IYBdhLWcg3wirCs#49642681 对于单个文件差异,您可以右键单击文件-> git->比较。
一个新窗口将被打开。在其中选择忽略选项。

0

Kdiff3是我需要完成工作的工具。这是一个GUI工具,适用于UNIX系统,可以比较两个文件、删除冲突并检查更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接