只希望从服务器获取当前状态的精简副本以进一步处理的脚本可以替代浅克隆:
git archive --remote=ssh://example.com/repo.git --output=repo.tar.gz HEAD -- "*.hpp" "*.cpp" "*.inc"
如果该 repo 恰好没有通配符之一的文件,则整个操作将失败:
remote: fatal: pathspec '*.inc' did not match any files
fatal: sent error to the client: git upload-archive: archiver died with error
remote: git upload-archive: archiver died with error
如果它们会抛出错误,是否有一种通用的方法可以忽略某些路径规范?如果没有这样的过滤器,它会下载太多。
路径规范中有一些模式,包括“glob”,但我不知道如何制作逻辑“OR”或正则表达式。