有谁知道如何做到这一点?到目前为止,我还没有通过谷歌找到任何有用的东西.
我真的想设置一个本地仓库并用git push它将它发布到S3,这个想法是对资产进行本地版本控制,而在S3上进行远程存储.
可以这样做,如果是这样,怎么办?
Ric*_*LEE 50
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
Run Code Online (Sandbox Code Playgroud)
注意,通过在.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
Run Code Online (Sandbox Code Playgroud)
在上面我使用s3cmd命令行工具来创建存储桶,但您也可以通过Amazon Web界面执行此操作.现在让我们把它推到S3(注意我们在每次与S3交互时使用jgit,否则使用标准git):
jgit push origin master
Run Code Online (Sandbox Code Playgroud)
现在去其他地方(例如cd/tmp)并尝试克隆它:
jgit clone amazon-s3://.jgit@git-repos/chef-recipes.git
Run Code Online (Sandbox Code Playgroud)
当需要更新它时(因为jgit不支持合并或拉动),你可以分2步完成:
cd chef-recipes
jgit fetch
git merge origin/master
Run Code Online (Sandbox Code Playgroud)
获取Amazon S3帐户!
下载,编译和安装.(参见InstallationNotes)
通过以下方法之一指定您的安全凭证(访问密钥ID和秘密访问密钥):
使用passwd_file命令行选项
设置AWSACCESSKEYID和AWSSECRETACCESSKEY环境变量
在主目录中使用.passwd-s3fs文件
使用系统范围的/ etc/passwd-s3fs文件
做这个
.
/usr/bin/s3fs mybucket /mnt
Run Code Online (Sandbox Code Playgroud)
而已!您的亚马逊水桶"mybucket"的内容现在应该可以在/ mnt中读/写
git-s3 - https://github.com/schickling/git-s3
你只需要跑 git-s3 deploy
它具有git repo和uploades /删除所有优点,只是您更改的文件.
注意:部署不是通过git push隐式的,但你可以通过git钩子实现.
您还可以使用 AWS CLI 和 Git(带钩子)执行此操作。已验证可在 Windows 10 上运行。应可在 Linux/Mac 上运行。
bare为现有的 git 项目创建一个新的git 仓库:mkdir myproject.git
cd myproject.git
git init --bare
Run Code Online (Sandbox Code Playgroud)
注意:使用裸存储库将作为上游,裸存储库将只包含您想要上传到 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/
Run Code Online (Sandbox Code Playgroud)myproject目录并将裸仓库添加为上游,s3例如命名:git remote add s3 path/to/bare/directory/myproject.git
Run Code Online (Sandbox Code Playgroud)
注意:您可以使用相对路径作为裸目录的路径。
s3当您想要将更改同步到 S3 存储桶时,将更改推送到上游。| 归档时间: |
|
| 查看次数: |
46004 次 |
| 最近记录: |