在应用过滤器之前怎么git
可能知道提交的 SHA-1 ?clean
下面的过滤器只打印Hello!
到stderr
:
$ cat filter.sh
#!/bin/bash
echo "Hello!" >&2
cat
创建一个新的 Git 存储库,配置myfilter
、暂存foo
并提交更改:
$ git init
Initialized empty Git repository in /tmp/git/.git/
$
$ echo -e '[filter "myfilter"]\n\tclean = "./filter.sh"\n\tsmudge = "./filter.sh"' >>.git/config
$
$ cat .gitattributes
foo filter=myfilter
$
$ echo 1234 >foo
$
$ git add foo
Hello!
$
$ git commit -m "First commit"
[master (root-commit) 637d6c1] First commit
Hello!
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 foo
据说提交的 SHA-1 是637d6c1...
在运行clean
过滤器之前。但是,clean
过滤器可能会foo
在提交之前更改内容,对吧?所以git
事先无法知道SHA-1。我在这里想念什么?