gpt4 book ai didi

ruby - filter执行时如何通过gitattributes判断被过滤的文件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:05 25 4
gpt4 key购买 nike

我在 git 存储库中有一堆 ruby​​ 脚本,强制人们编写正确缩进的代码似乎真的很难。

我还有一个小的 ruby​​ 脚本,可以格式化为特定标准的代码,现在我想将其作为过滤器脚本运行,这样垃圾就不会提交到存储库中。

echo "*.rb filter=rubyfilter" > .gitattributes
echo "[filter \"rubyfilter\"]" >> .git/config
echo " clean = /home/rasjani/bin/rbeauty" >> .git/config
echo " smudge = /home/rasjani/bin/rbeauty" >> .git/config

git 方面做了肮脏的把戏,但 ruby​​ 脚本应该处理受影响的文件:

我如何/从哪里查找这些信息?

最佳答案

GitPro Book 中所述

Git applies those settings only for a subdirectory or subset of files. These path-specific settings are called Git attributes and are set either in a .gitattributes file in one of your directories

git attributes手册页提到:

  • Upon checkout, when the smudge command is specified, the command is fed the blob object from its standard input, and its standard output is used to update the worktree file.
  • Similarly, the clean command is used to convert the contents of worktree file upon checkin.

alt text

因此您的脚本将在 check out 和提交时处理每个 *.rb 文件(在 .gitattributes 文件所在的目录和子目录中)。

查看此 SO question举个具体的例子。
您可以使用以下方法测试您自己的设置:

git checkout --force

注意:如本SO question所述、smudgeclean 脚本只能修改文件的内容,而不知道它们正在处理的确切文件 .

关于ruby - filter执行时如何通过gitattributes判断被过滤的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873124/

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