我喜欢使用git diff -w来忽略空白差异。但是,我刚刚注意到,它甚至忽略了行中间的空白差异。我怎么能只忽略行开头(^)或结尾($)的空白差异呢?
当前回答
这是一个老问题,但仍然经常被看到/需要。我想发表这篇文章提醒像我这样的读者,OP问题中提到的空格与Regex的定义不一样,它包括换行符、制表符和空格字符——Git要求你明确。查看一些选项:https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
如上所述,git diff -b或git diff——ignore-space-change将忽略行尾的空格。如果你希望这个设置是你的默认行为,下面这行代码会把这个意图添加到你的.gitconfig文件中,所以它总是忽略行尾的空格:
Git配置——全局核心。空白尾随空格
在我的例子中,我发现这个问题是因为我对忽略“回车空格差异”感兴趣,所以我需要这个:
Git diff—ignore-cr-at-eol or Git配置——全局核心。空格cr-at-eol从这里开始。
你也可以通过省略——global参数使其仅为该repo的默认值,并检查该repo的设置文件。对于我遇到的CR问题,如果.gitconfig文件[core]部分中的warncrlf或selflf = true签入后,它就会消失。
其他回答
这是一个老问题,但仍然经常被看到/需要。我想发表这篇文章提醒像我这样的读者,OP问题中提到的空格与Regex的定义不一样,它包括换行符、制表符和空格字符——Git要求你明确。查看一些选项:https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
如上所述,git diff -b或git diff——ignore-space-change将忽略行尾的空格。如果你希望这个设置是你的默认行为,下面这行代码会把这个意图添加到你的.gitconfig文件中,所以它总是忽略行尾的空格:
Git配置——全局核心。空白尾随空格
在我的例子中,我发现这个问题是因为我对忽略“回车空格差异”感兴趣,所以我需要这个:
Git diff—ignore-cr-at-eol or Git配置——全局核心。空格cr-at-eol从这里开始。
你也可以通过省略——global参数使其仅为该repo的默认值,并检查该repo的设置文件。对于我遇到的CR问题,如果.gitconfig文件[core]部分中的warncrlf或selflf = true签入后,它就会消失。
终端使用:
git diff --ignore-space-at-eol
而不是你目前使用的:
git diff -w (--ignore-all-space)
作为开始的线…如果你想要一个内置的解决方案,那你就不走运了。
然而,如果你不介意自己动手的话,在某个地方有一个相当老的补丁,它增加了对“——ignore-space-at-sol”的支持。
推荐文章
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?
- 如何在不稳定的连接上完成一个大项目的git克隆?