Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 格式更新只是一个无聊的Git提交吗?_Python_Git - Fatal编程技术网

Python 格式更新只是一个无聊的Git提交吗?

Python 格式更新只是一个无聊的Git提交吗?,python,git,Python,Git,我有一个Python项目,我正在进行研究。我一直在两台不同的机器上工作,最近我发现我的文件有一半使用制表符,另一半使用空格 当我试图从一台机器到另一台机器编辑和运行文件时,Python对此表示反对,因此我希望将所有内容切换到空格而不是制表符。但是,这看起来像是在浪费Git提交—在未提交但正确的文件上运行“Git diff”会使我看起来像是在删除并替换整个文件 有办法解决这个问题吗?也就是说,是否有某种方法可以“隐藏”这些(IMO)琐碎的更改?不幸的是,在文本层面,这是一个巨大的更改。最好不要将空

我有一个Python项目,我正在进行研究。我一直在两台不同的机器上工作,最近我发现我的文件有一半使用制表符,另一半使用空格

当我试图从一台机器到另一台机器编辑和运行文件时,Python对此表示反对,因此我希望将所有内容切换到空格而不是制表符。但是,这看起来像是在浪费Git提交—在未提交但正确的文件上运行“Git diff”会使我看起来像是在删除并替换整个文件


有办法解决这个问题吗?也就是说,是否有某种方法可以“隐藏”这些(IMO)琐碎的更改?

不幸的是,在文本层面,这是一个巨大的更改。最好不要将空白更改与任何其他更改混合使用。这种提交的主题应该是空格更改


如果这个错误没有公布(只有在你的私人回购协议中),你可以回到过去,修复历史上引入它时的混乱,然后经历修复后续更改的痛苦(必须以正确的缩进方式重新处理)。对于这项工作,您最终会得到一个干净的历史记录。

有一个,它被称为
重新基址
——但是,您可能希望在您编辑该文件的每次提交中,向每个文件追溯添加空格,这将是非常乏味的

然而,像这样的提交绝对没有错。提交表示对项目的不同运行状态的更改,用空格替换选项卡肯定是一种不同的状态

您希望使用rebase的一个地方是,如果您意外地进行了非功能性提交。例如,您可能只提交了需要提交的文件的一半


最后一件事:一旦将更改推送到另一台机器上,就不要编辑历史记录(即使用
重新设置基址
)。机器将失去同步,您的回购将开始缓慢爆炸。

这是完全有效的。将空白重新格式化与同一文件中的其他更改相耦合可能会混淆非空白更改。commit只负责重新格式化空白

纯粹是我的观点,但仅格式更改提交本身就应该是真正的提交,提交消息会说明它存在的原因(“只将所有内容切换到空格;不打算更改代码或行为”或类似内容)。我同意@torek。格式更改,特别是从制表符到空格的更改,应该是它自己的提交。我定期为github上的大型项目做出贡献,并且我的一些已合并的pull请求没有这样重要(例如,我今天制作了一个符合python文件
pep-8
),因此我会将此作为一个真正的提交。@torek-将该评论作为一个答案,我会接受它(它出现在Kaz回答的前一分钟左右,这也很有帮助)!@tonysdg:现在太晚了,我想,我真的不需要代表点:-)虽然是个好答案,但你不应该强制要求提交必须是“功能”状态。在许多情况下,使用非功能性代码状态是完全可以接受的。(只要你没有破坏别人依赖的现有代码。)例如,在我工作的一个大型项目中,我们有一个功能分支回购布局。每个问题都有自己的分支,在那里提交该问题,然后合并到主干。虽然我们不得不担心合并状态是否有效,但分支提交不必是功能性的。这带来了许多好处,例如更详细的时间表、进度跟踪和团队协作。