我没有在本地机器上安装 Black,而是尝试从 Docker 容器运行 Black(从 requirements.txt 安装)。我正在寻找添加一个 Makefile 命令来格式化修改后的文件。到目前为止,这是我想出的,它的运行方式是make format
:
# formats any files which differ from the point at which the current branch (2) forked from master (1)
# ____1_____________ master
# \__________ dev
# \_________2 current_branch
diff_files := $(shell git diff $(git merge-base --fork-point master) --name-only -- "*.py")
format:
docker-compose run --rm api black $(diff_files)
这会找到当前分支从 master 分支的点
https://git-scm.com/docs/git-merge-base#_operation_modes:
git merge-base --fork-point master
这将返回从带有 .py 扩展名的 diff 返回的文件名(.py 过滤器可能是矫枉过正?)
https://git-scm.com/docs/git-diff#_description
--name-only -- "*.py"
希望听到一些反馈,或任何类似设置的示例。