bash脚本用于同步目录但忽略某些文件

时间:2010-11-17 13:57:41

标签: macos bash

我正在尝试为我的PhoneGap项目提供解决方案。目前我正在开发一个文件夹,然后将编辑过的文件复制到xcode的www文件夹中 - 所以我可以将git repo与构建的内容分开。这变得非常重复,我想自动化它。有任何想法吗? 基本上它需要忽略.git,.project和其他点文件。我在mac osx上。

3 个答案:

答案 0 :(得分:4)

使用rsync很容易。检查手册页中的--exclude选项。

答案 1 :(得分:1)

如果这是一个git仓库,你也可以使用git archive来捆绑 - 这样做的好处是只查看跟踪的内容,并能够在任意提交下运行,而不仅仅是你目前在你的工作树上。

如果存在您不想存档的跟踪文件,则可以使用export-ignore gitattribute将其排除。例如:

 $ cat .gitattributes
 .project export-ignore
 .gitignore export-ignore
 .gitattributes export-ignore

就像.gitignores一样,您也可以在子目录中使用.gitattributes,并且可以使用模式。例如,最后两个可以简化为.git*

请注意,git-archive默认使用您正在归档的提交/树中的属性,而不是工作树,因此如果您正在摆弄属性和测试,则需要使用{{1 }}

答案 2 :(得分:0)

你可以使用用于同步目录的rsync&也可以配置为包含&amp ;;或者从同步中排除文件。