用意するフォルダ (./project下)
・project/www_dev
=開発用フォルダ
・project/remote/non-bare
=ノンベアリポジトリ用フォルダ(リモートリポジトリ)
・project/remote/bare/www.git
=ベアリポジトリ用フォルダ(リモートの履歴管理等用)
ローカルフォルダ(project/www_dev)
1 |
echo 'test' > index.html |
適当にファイルを作成。
ローカル(開発用)にリポジトリを作成します。
1 2 3 |
$git init $git add . $git commit -m 'first commit' |
bareフォルダ(project/remote/bare/www.git)
ベアリポジトリを作成します。
1 |
git init --bare --shared |
ローカルからリモートリポジトリ(bare)の追加
project/www_devへ移動します。開発フォルダにベアリポジトリを登録します。
1 |
git remote add main パス/bare/www.git |
登録できたか git remote -v で確認しましょう。
実際にローカルからリモートリポジトリに向けてpushをしましょう。
non-bareフォルダ(project/remote/non-bare)
ベアリポジトリをcloneしましょう。
1 |
git clone ../bare/www.git |
ノンベアリポジトリ内に
ローカルリポジトリからのpushされたデータが作られました。
流れ
ローカルで編集後、ベアリポジトリに向けてpush.push後、ノンベアリポジトリ(リモートリポジトリ)に入り
pullしましょう。
これで、ローカルリポジトリの内容が
リモートリポジトリに反映されました。
リモートリポジトリで
fetch,merge or pull するのが少々面倒ですが、最小構成で完成しました。
ベアリポジトリからノンベアリポジトリへの反映は
きっと自動化できると思うのでぜひ、自動化してみてください。
フックを使った簡単な自動化
ベアリポジトリ > hooks > post-receive (なければ作成)post-receiveは拡張子なしです。
1 2 3 |
#!/bin/sh cd 絶対パス/remote/non-bare/www git --git-dir=.git pull |
以上です。
参考

gitのベアリポジトリとノンベアリポジトリ - Qiita
はじめに
リーナス・トーヴァルズはgitを10日間で作ったとか、神はいるんだねえ。
本の虫 -gitの10周年を記念したLinus Torvalsへのインタビューの翻訳
開発用Macでコーディング、その後サーバにpushして…...

ローカルのフォルダをgitのremoteとして設定したい(windows) - Qiita
自分のローカルにgitのremoteを設定して運用することになったのでメモ
普通だとgithubとかなんやら使うのに珍しいな...と思った
参考サイト様
参考サイト:Windows PCをGitのリモートリポジトリとして使用す...

メモ: Gitリモートリポジトリにpushして自動更新してもらう方法 - Qiita
hookまとめ
リポジトリの新規作成
1. サーバーでbareリポジトリを作成
bareリポジトリを作成
# mkdir -p /opt/repo/src.git
# cd /opt/repo/src.git
# gi...
コメント