git公開リポジトリ構築

今まではGitHubばかり使っていたので自分でやったことなかったけど、今回改めてマイサーバーに設定してみたのでメモ。

環境

  • OS:CentOS release 6.5
  • git version 1.7.1

git用グループとユーザーの追加

git用に使用するグループとユーザーを追加します。sshでpush/pullを考えていますので、単純にLinuxグループ・ユーザーを追加します。

# グループの追加
groupadd git

# 追加したグループをプライマリグループにしてユーザーの追加
useradd development -g git -d /home/development/
passwd development

今回は同一サーバーにこのブログ(sawara.me)も乗っかっており、このブログのソースコードをgitでバージョン管理しようと思います。このブログのソースはsawara.meというユーザーのホームディレクトリにありますので、sawara.meユーザーをgitグループに追加しておきます。

usermod -G git sawara.me

共有リポジトリ構築

以下の様な感じでざっと作ってしまいます。簡単。

# 共有リポジトリ用のディレクトリ作成
mkdir -p /git/sawara.me.git

# 共有リポジトリ用のディレクトリに移動
cd /git/sawara.me.git/

# 共有リポジトリ作成
git --bare init --share

# 共有リポジトリ用のディレクトリの所有ユーザーの変更
chown -R development:git /git/sawara.me.git

既存ソースコードのcommit → push

まずは既存ソースコードの場所にローカルリポジトリを作成し、ソースコードをコミットします。

# sawara.meのホームディレクトリに移動
cd /home/sawara.me/

# ローカルリポジトリの作成
sudo -u sawara.me git init

# コミットするソースコードを追加
sudo -u sawara.me git add .

# コミット
sudo -u sawara.me git commit

次に共有リポジトリを指定しソースコードをpushします。

# push/pullのデフォルトの宛先を指定します。
sudo -u sawara.me git remote add origin /git/sawara.me.git
sudo -u sawara.me git config branch.master.remote origin
sudo -u sawara.me git config branch.master.merge refs/heads/master

# 上記設定を行っても初回push時には共有リポジトリのパスが必要
sudo -u sawara.me git push /git/sawara.me.git master

# 2回目以降からパスの指定の必要なし
sudo -u sawara.me touch test
sudo -u sawara.me git add .
sudo -u sawara.me git commit
sudo -u sawara.me git push

別環境でリポジトリを複製する

開発環境など別環境でローカルリポジトリを作成したい場合は以下の様にリポジトリを複製出来ます。

# リポジトリの複製(IPアドレスは共有リポジトリのサーバーのIPアドレス)
git clone ssh://development@192.168.1.1/git/sawara.me.git sawara.me

既存の本番環境から環境を構築出来たのは嬉しい。これでpush&pullで本番に反映出来て楽になった。 ま、けどGitHubでいいかな。

既存subversionで管理しているやつもgitに移行しようか画策中なんだけど、.svnフォルダどおやって消そうか。

コメントを残す