Google cloud platform 如何在忽略.git、.gitignore等文件时执行gsutil cp-R?

Google cloud platform 如何在忽略.git、.gitignore等文件时执行gsutil cp-R?,google-cloud-platform,gsutil,Google Cloud Platform,Gsutil,我正在尝试将我的web资产与google云存储同步的过程自动化。我基本上需要将开发目录中的所有内容复制到云上。但是,我需要忽略.git目录和其他一些不相关的文件 我不能只做“gsutil cp-R”因为这需要绝对的一切,包括.git。 我尝试了“find.| fgrep git | gsutil cp-I”,但这会压平所有目录并将它们放在根目录中 有没有一种方法可以用gsutil解决这个问题,或者我必须在脚本中执行一个循环,使用-R上载所有目录(除了.git),然后上载当前目录中的各个文件?您有

我正在尝试将我的web资产与google云存储同步的过程自动化。我基本上需要将开发目录中的所有内容复制到云上。但是,我需要忽略.git目录和其他一些不相关的文件

我不能只做“gsutil cp-R”因为这需要绝对的一切,包括.git。 我尝试了“find.| fgrep git | gsutil cp-I”,但这会压平所有目录并将它们放在根目录中

有没有一种方法可以用gsutil解决这个问题,或者我必须在脚本中执行一个循环,使用-R上载所有目录(除了.git),然后上载当前目录中的各个文件?

您有两个选项:

A) 上载git文件后删除这些文件:

gsutil rm gs://bucket/\*.git\*
B) 使用“查找”排除git文件:

find . -not -path '*/.git' -type f -printf '%P\n' | xargs -I '{}' gsutil cp '{}' gs://bucket/'{}'
资料来源:


如果gsutil实现rsync,这会容易得多,使用--exclude标志会容易得多。

您可以使用如下命令:

gsutil rsync -x '\.git.*' dev_dir gs://your-bucket

请参阅谷歌存储-

这是一个合适的答案。不知道为什么会被否决。