有谁知道怎么做?到目前为止,我还没有通过谷歌找到任何有用的东西。
我真的想设置一个本地仓库并使用git push
将其发布到S3,这个想法是对资产进行本地版本控制,但是在S3上进行远程存储。
可以这样做,如果是,怎么做?
答案 0 :(得分:49)
1 通过http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html
使用JGit下载jgit.sh,将其重命名为jgit并将其放入您的路径中(例如$ HOME / bin)。
设置.jgit配置文件并添加以下内容(替换您的AWS密钥):
$ vim~ / .jgit
accesskey: aws access key
secretkey: aws secret access key
注意,通过在.jgit文件中不指定acl:public,S3上的git文件将是私有的(这是我们想要的)。接下来创建一个S3存储桶来存储您的存储库,让我们称之为git-repos,然后创建一个git存储库来上传:
s3cmd mb s3://git-repos
mkdir chef-recipes
cd chef-recipes
git init
touch README
git add README
git commit README
git remote add origin amazon-s3://.jgit@git-repos/chef-recipes.git
在上面我使用s3cmd命令行工具来创建存储桶,但您也可以通过Amazon Web界面执行此操作。现在让我们把它推到S3(注意我们在每次与S3交互时使用jgit,否则使用标准git):
jgit push origin master
现在去其他地方(例如cd / tmp)并尝试克隆它:
jgit clone amazon-s3://.jgit@git-repos/chef-recipes.git
当需要更新它时(因为jgit不支持合并或拉动),你可以分两步完成:
cd chef-recipes
jgit fetch
git merge origin/master
2 使用FUSE-based file system backed by Amazon S3
获取Amazon S3帐户!
下载,编译和安装。 (参见InstallationNotes)
指定您的安全凭证(访问密钥ID和秘密访问权限) 键)通过以下方法之一:
使用passwd_file命令行选项
设置AWSACCESSKEYID和AWSSECRETACCESSKEY环境变量
在主目录中使用.passwd-s3fs文件
使用系统范围的/ etc / passwd-s3fs文件
这样做
/usr/bin/s3fs mybucket /mnt
就是这样!您的亚马逊水桶“mybucket”的内容现在应该可以在/ mnt中读取/写入
答案 1 :(得分:10)
蒲公英是另一个CLI工具,它将使Git存储库与S3 / FTP / SFTP保持同步: http://github.com/scttnlsn/dandelion
答案 2 :(得分:8)
git-s3 - https://github.com/schickling/git-s3
您只需运行git-s3 deploy
它带来了git repo和uploades /删除所有优点,只是你改变的文件。
注意:部署不是通过git push隐式的,但你可以通过git hook实现。
答案 3 :(得分:2)
你可以使用mc aka Minio client,用Golang&在开源Apache许可证下可用。它适用于Mac,Linux,Windows,FreeBsd。您可以使用mc mirror
命令来满足您的要求。
mc GNU / Linux下载
64-bit Intel from https://dl.minio.io/client/mc/release/linux-amd64/mc
32-bit Intel from https://dl.minio.io/client/mc/release/linux-386/mc
32-bit ARM from https://dl.minio.io/client/mc/release/linux-arm/mc
$ chmod +x mc
$ ./mc --help
为Amazon S3配置mc
$ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
将您的github本地存储库/目录镜像名称mygithub
映射到amazon S3存储桶名称mygithubbkp
$ ./mc mirror mygithub mys3/mygithubbkp
希望它有所帮助 免责声明:我为Minio
工作答案 4 :(得分:1)
您可以使用deplybot(http://deploybot.com/)服务,该服务免费用于单个git存储库。
您可以通过选择"自动"来自动部署。在部署模式部分。
我现在正在使用它。它非常简单实用。
答案 5 :(得分:0)
版本使用Github控制您的文件?此脚本(及其关联的GitHub / AWS配置)将对您的存储库进行新的提交,并将它们同步到您的S3存储桶中。
答案 6 :(得分:0)
只需使用aws凭据将.jgit文件保存在用户目录中,就可以将git与s3一起使用。
以下是您的git网址的样子。
amazon-s3://.jgit@mybucket/myproject.git
您可以使用git
执行jgit
所做的一切。
在此处获取完整的设置指南。
https://metamug.com/article/jgit-host-git-repository-on-s3.php
答案 7 :(得分:0)
您还可以使用AWS CLI和Git(带有挂钩)执行此操作。经过验证可在Windows 10上运行。应该在Linux / Mac上运行。
bare
git repo:mkdir myproject.git
cd myproject.git
git init --bare
注意:使用裸仓库将作为上游,而裸仓库仅 拥有要上传到S3存储桶的更改,并且不会被忽略 文件,本地git配置等。
post-update
安装到裸hooks
目录的myproject.git
中。
#!/bin/sh; C:/Program\ Files/Git/usr/bin/sh.exe
# Sync the contents of the bare repo to an S3 bucket.
aws s3 sync . s3://myproject/
myproject
目录中,并将裸仓库添加为上游,例如将其命名为s3
:git remote add s3 path/to/bare/directory/myproject.git
注意:您可以使用相对路径作为裸目录的路径。
s3
上游。