我可以撤消 Black 对我的 Python 代码所做的格式样式更改吗?
Can I undo the formatting style changes that Black makes to my Python code?
Python 格式化工具 Black 是否有一个选项可以撤消它在 运行 之后所做的格式更改?或者它假设我正在使用源代码管理并制作我自己的备份?这是截至 2019 年 12 月和黑色版本 19.3b0。
不,不是。它什么都不做,只是重新格式化已传递给它的文件。它只是一个性能良好的 Unix 工具,它希望您处理自己的版本控制。
其 --diff
选项是您可以获得的最佳选项:
--diff
Don't write the files back, just output a diff for each file on stdout.
一些文本编辑器和 IDE,例如 Pycharm 允许您简单地点击 cmd+Z(或编辑器中的任何撤消命令)以恢复到自动格式化之前的状态。此外,在自动格式化之前,您可以测试结果将使用 Black Playground。
如果你不小心用黑色预提交(意思是https://pre-commit.com/)钩子格式化了很多遗留代码,而你不想这么做。
警告:在执行每条命令之前请三思,检查是否适合您的情况
- 将黑色预提交挂钩输出中的重新格式化文件列表复制到单独的文件中,例如命名为
filelist
export SKIP=black
暂时禁用黑色预提交挂钩
- 您的原始(未格式化)更改已在索引中,现在用
git commit
提交它们。
- 现在,
unset SKIP
再次启用黑色预提交挂钩
现在您可以使用 filelist
自己撤消格式更改,而您的原始更改已经提交。
使用 --diff
标志,可以将输出通过管道传输到 patch
,然后发送到标准输出。一行 shellscript 可以用作包装器,其中 </code> 是正在格式化的文件:</p>
<p><code>black --quiet --diff "" | patch --quiet -o - ""
Python 格式化工具 Black 是否有一个选项可以撤消它在 运行 之后所做的格式更改?或者它假设我正在使用源代码管理并制作我自己的备份?这是截至 2019 年 12 月和黑色版本 19.3b0。
不,不是。它什么都不做,只是重新格式化已传递给它的文件。它只是一个性能良好的 Unix 工具,它希望您处理自己的版本控制。
其 --diff
选项是您可以获得的最佳选项:
--diff
Don't write the files back, just output a diff for each file on stdout.
一些文本编辑器和 IDE,例如 Pycharm 允许您简单地点击 cmd+Z(或编辑器中的任何撤消命令)以恢复到自动格式化之前的状态。此外,在自动格式化之前,您可以测试结果将使用 Black Playground。
如果你不小心用黑色预提交(意思是https://pre-commit.com/)钩子格式化了很多遗留代码,而你不想这么做。
警告:在执行每条命令之前请三思,检查是否适合您的情况
- 将黑色预提交挂钩输出中的重新格式化文件列表复制到单独的文件中,例如命名为
filelist
export SKIP=black
暂时禁用黑色预提交挂钩- 您的原始(未格式化)更改已在索引中,现在用
git commit
提交它们。 - 现在,
unset SKIP
再次启用黑色预提交挂钩
现在您可以使用 filelist
自己撤消格式更改,而您的原始更改已经提交。
使用 --diff
标志,可以将输出通过管道传输到 patch
,然后发送到标准输出。一行 shellscript 可以用作包装器,其中 </code> 是正在格式化的文件:</p>
<p><code>black --quiet --diff "" | patch --quiet -o - ""