[解決済み] Gitを使ってS3へパブリッシュする?
質問
どなたか、この方法をご存じないでしょうか?今のところ、Google で有用なものを見つけることができません。
私は本当にローカルレポをセットアップして
git push
を使用して S3 に公開することで、アセットに対してローカルなバージョン管理を行いながら、S3 にリモートで保存できるようにしたいと考えています。
これは可能ですか?可能な場合、どのように可能ですか?
どのように解決するのですか?
1 JGitを使用する 経由 http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html
jgit.shをダウンロードし、jgitにリネームしてパス(例:$HOME/bin)に入れます。
.jgit configファイルを設定し、以下を追加します(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はmergeやpullをサポートしていないので)更新するときは、2つのステップで行います。
cd chef-recipes
jgit fetch
git merge origin/master
2 使用方法 Amazon S3 でバックアップされた FUSE ベースのファイルシステム
-
Amazon S3 アカウントを取得しましょう
-
ダウンロード、コンパイル、インストールを行います。(InstallationNotesを参照)
-
セキュリティ認証情報 (アクセス キー ID とシークレット アクセス キー) を次のいずれかの方法で指定します。 Key)を以下のいずれかの方法で指定します。
-
passwd_file コマンドラインオプションを使用する。
-
AWSACCESSKEYIDとAWSSECRETACCESSKEYの環境変数の設定
-
ホームディレクトリにある.passwd-s3fsファイルを使用します。
-
システム全体の /etc/passwd-s3fs ファイルを使用します。
-
これを行う
-
.
/usr/bin/s3fs mybucket /mnt
これで、amazonバケット(mybucket)の中身が/mntに読み書きできるようになりました。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Git Bashが致命的に表示される:この操作は作業ツリーで実行する必要がある
-
hint: 現在のブランチの先端が hint: そのリモートカウントより遅れているため、更新が拒否されました。
-
Git学習まとめ(2)コミットには何も追加されていないが、未追跡のファイルは存在する
-
Git はファイル名の大文字と小文字を無視し、修正する
-
git push please tell me who you are or git fatal: empty ident name (for <>) not llowed.
-
[解決済み] gitにもsvnのような無視コマンドはありますか?
-
[解決済み] stash@{1}は曖昧?
-
[解決済み] ローカルのGitブランチをリモートレポにコピーする方法
-
[解決済み] Git git reset」後にコミットメッセージを再利用/保持するには?
-
[解決済み] Git Repo から既存のファイルを削除する