我一直在我的 git 存储库中使用 post-receive 脚本,使用以下命令 check out 存储库中的所有文件:
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
我想做类似的事情,但只检查在推送中修改或添加的文件。 checkout 文件后,接收后脚本将对这些文件运行一些其他命令,并在最后删除文件,以便目录为空。
这可能吗?
最佳答案
你可以使用 git diff
给你一个文件列表
git diff --name-only from..to
在 post-receive 中我想就是这样
git diff --name-only $1..$2
因为这个钩子(Hook)在标准输入上接收 oldrev
、newrev
和 ref
关于Git post-receive 仅 checkout 那些在推送中修改/添加的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478792/