gpt4 book ai didi

git filter-branch 只获取更改的文件?

转载 作者:行者123 更新时间:2023-12-04 21:03:44 25 4
gpt4 key购买 nike

我们要运行 git filter-branch通过大型代码库重新格式化 PHP 文件。由于我们有超过 21k 次提交 phpcbf想在每次提交 filter-branch 时格式化整个代码库.是否可以只获取每次提交更改的文件并专门格式化它们?就像是...

git filter-branch --tree-filter \
'FILES=$(<something> | grep .php) php /usr/local/bin/phpcbf.phar $FILES || true'

最佳答案

我找到了解决方案:

git filter-branch --tree-filter 'phpcbf $(\
git show $GIT_COMMIT --name-status | egrep ^[AM] |\
grep .php | cut -f2)' -- --all

只是为了快速概述它在做什么:
  • git show $GIT_COMMIT --name-status将返回该提交的所有修改文件。
  • egrep ^[AM]将雕像过滤为仅添加和修改。无需尝试格式化正在删除的文件。
  • grep .php仅格式化 PHP 文件。
  • cut -f2从列表中删除状态前缀,因此我们只获取原始文件路径。

  • 详情请参阅我的博文: https://elliot.land/post/reformatting-your-codebase-with-git-filter-branch

    关于git filter-branch 只获取更改的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257833/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com