代码缩进从制表符转换为空格:在Git中是否可以追踪?

3

我最初尝试在我的项目中应用软制表符,但是对于一个由git跟踪的Python项目进行测试后出现了一些问题;自然地,git认为每一样东西都改变了,这不是我想要的。

虽然git diff可以通过-w开关来理解从比较中删除空格,但是对于git commit没有这样的开关。

是否有办法使过渡更加顺畅,或者有没有办法让git忽略这种突然的变化呢?


2
我不明白。你想提交从制表符到空格的更改吗?为什么“git认为一切都已经改变”是不好的?如果你已经用制表符更改了每一行,那可能就是这种情况。 - CB Bailey
更改缩进对代码没有任何影响,因此会使得在更改前后比较提交时变得混乱。 - mike3996
3
我还是不明白。如果它对代码没有任何作用,那就不要改变它。如果您的问题纯粹是关于在更改中忽略空格,为什么不继续使用diff的-w选项(以及show和log等)? - CB Bailey
我的评论不是想法,而是问题。你的问题纯粹是关于差异显示,还是你想做一些不同的事情,比如在工作树中使用软制表符,但在使用提交时不提交制表符转换为空格的更改,这就是你最初的问题所暗示的?我真的还不完全明白你在问什么。 - CB Bailey
以下是由harshh提供的内容,这可能是Can git automatically switch between spaces and tabs?的重复问题。 - P Shved
我只是在寻找一个无摩擦的选项。也许 -w 选项可以帮助大部分操作。我的目标是从那个提交开始将硬制表符转换为软制表符,但同时也要方便地访问旧的提交记录。但是这样硬制表符和软制表符会混合得非常丑陋。我会把你的建议作为解决我的问题的答案。 - mike3996
1个回答

4

1
这是一个非常好的解决方案,但我不太舒服,因为工作目录和仓库中有不同的内容。 - mike3996

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