如何撤销Black格式化Python代码时生成的过短行长度效果?
撤销Black误格式化操作的解决方案
首先明确:你直接运行black --line-length 110没有效果是Black的设计逻辑导致的——Black只会把超出指定长度的长行拆短,不会主动把已经拆分的短行合并回长行,所以没法通过二次运行Black直接恢复。
方案1:代码已纳入Git等版本控制系统(最优先)
这是成本最低的恢复方式,直接回退到格式化之前的版本即可:
- 如果还未提交本次格式化的修改,直接丢弃工作区变更:
# 恢复所有变更文件 git restore . # 如果只需恢复部分文件,将.替换为对应文件/目录路径即可 - 如果已经提交了格式化的改动,撤销最近一次提交即可:
# 仅撤销提交,保留格式化后的文件改动 git reset --soft HEAD~1 # 完全撤销提交和文件改动,恢复到上一个提交状态 git reset --hard HEAD~1
方案2:未使用版本控制
按优先级选择操作:
- 如果你执行格式化操作后没有关闭过代码编辑器,直接在所有被修改的文件中执行编辑器的撤销操作(通常是Ctrl/Cmd+Z)即可回退到格式化前的状态
- 如果你有格式化前的文件备份,直接用备份文件覆盖当前被修改的文件即可
- 没有备份也没有编辑器撤销历史的情况下,只能手动调整对应行,或暂时接受本次格式化结果,后续通过配置固定行长度避免再出现同类问题
后续防错配置
在项目根目录新建pyproject.toml文件,写入以下内容即可固定Black的行长度参数,后续无需每次手动加--line-length:
[tool.black] line-length = 110
内容的提问来源于stack exchange,提问作者Minsky
相关产品推荐
相关产品推荐

