ローカルのみでgit管理する方法(備忘録)

プログラミング関連

ローカルのみでgit管理する方法を記します。

用意するフォルダ (./project下)
・project/www_dev
=開発用フォルダ

・project/remote/non-bare
=ノンベアリポジトリ用フォルダ(リモートリポジトリ)

・project/remote/bare/www.git
=ベアリポジトリ用フォルダ(リモートの履歴管理等用)

ローカルフォルダ(project/www_dev)

echo 'test' > index.html

適当にファイルを作成。
ローカル(開発用)にリポジトリを作成します。

$git init
$git add .
$git commit -m 'first commit'

bareフォルダ(project/remote/bare/www.git)

ベアリポジトリを作成します。

git init --bare --shared

ローカルからリモートリポジトリ(bare)の追加

project/www_devへ移動します。
開発フォルダにベアリポジトリを登録します。

git remote add main パス/bare/www.git

登録できたか git remote -v で確認しましょう。

実際にローカルからリモートリポジトリに向けてpushをしましょう。

non-bareフォルダ(project/remote/non-bare)

ベアリポジトリをcloneしましょう。

git clone ../bare/www.git

ノンベアリポジトリ内に
ローカルリポジトリからのpushされたデータが作られました。

流れ

ローカルで編集後、ベアリポジトリに向けてpush.
push後、ノンベアリポジトリ(リモートリポジトリ)に入り
pullしましょう。

これで、ローカルリポジトリの内容が
リモートリポジトリに反映されました。

リモートリポジトリで
fetch,merge or pull するのが少々面倒ですが、最小構成で完成しました。

ベアリポジトリからノンベアリポジトリへの反映は
きっと自動化できると思うのでぜひ、自動化してみてください。

フックを使った簡単な自動化

ベアリポジトリ > hooks > post-receive (なければ作成)

post-receiveは拡張子なしです。

#!/bin/sh
cd 絶対パス/remote/non-bare/www
git --git-dir=.git pull

以上です。

参考

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

https://qiita.com/KTakata/items/baa96574ce391775a212
自動化する方法

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

コメント

タイトルとURLをコピーしました