首页 > 解决方案 > 空格扩展以匹配 git 存储库

问题描述

情况
在我目前正在工作的版本控制项目中,我想使用制表符,但标准是使用四个空格。我设法通过这个答案和这个页面解决了这个问题:
https ://stackoverflow.com/a/2318063/7398644
https://sites.google.com/site/gibekm/programming/git/converting-between-tabs-and -空格

现在的问题是,存储库中的某些代码部分实际上是从以前开始使用选项卡提交的。这是有问题的,因为 git 现在将所有前导选项卡扩展为空格,然后再针对存储库进行差异化,因此无论我做什么都会说存在差异。我相信您知道,仅使用空格更改来提交代码行是一种不好的形式。

我正在使用带有 SourceTree 的 Git,它的差异视图可以设置为忽略空格更改,但即使没有显示任何更改,它仍然会将文件列为已修改(我假设这是因为哈希不同)。我希望有一个干净的暂存区,不会被未修改的文件弄得乱七八糟。我也担心它会在未来引起合并冲突。

问题
有没有办法不展开(或者在展开后不展开)也是存储库中选项卡的选项卡?


可以用我自己的脚本替换结果expand,但它需要做一些我不知道该怎么做的事情。我发现了我什至无法在 Git 文档中找到的出色信息:
https
://github.com/gilesbowkett/git-smudge-and-clean 显然该脚本可以通过读取标准输入和写入标准输出来工作。这意味着我不知道正在处理什么文件。我还需要访问存储库上的版本以比较行,如果我什至不知道要检查什么文件,我将无法做到这一点。我能想到的最好的方法是询问 Git 更改了哪些文件,并尝试将这些文件与 stdin 的输入进行比较以找到最接近的匹配项。

标签: gitwhitespace

解决方案


推荐阅读