とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

【Git】ローカルサーバー内でプロジェクトを管理

リモートリポジトリで開発環境と本番環境を分けたいんだけど、
お金ないし、個人でごにょごにょするには一個のサーバーで何とかしたいですよね?

本来は開発環境でpushした物を
本番環境でpullしで反映させるんですけど、一個のサーバーでなんとかこれと同じ事がしたかった訳です。

ってことでやってみました。


まずはリモートリポジトリを作りましょう。
私は適当に$HOME/repos/以下に作りましたが、ローカル環境内での作業なので別に好きな所で大丈夫だと思う。

 $ cd $HOME/repos/

しらばらプロジェクト名の.gitフォルダを作ります。

 $ mkdir hogehoge.git 

んで管理用に初期化

 $cd hogehoge.git 
 $ git init --bare

これでリモートリポジトリの下準備が完了しました

で、今度は自分がいま作ってるプロジェクトをこのいま作成したリモートリポジトリとひもづければpushもpullもできるはず。
ということで移動(もしもまだなにも作ってないひとはこの作業はいらないです)

 $ cd $HOME/work/hogehoge/

でだ、いままでここで作業していて、コミットだけを行っていたのですが、これをリモート(さっき作ったフォルダ)にaddします

 $ git remote add origin $HOME/repos/hogehoge.git

これで今までの作業分がリモートに格納されました。
そんじゃこっちを本番にして、開発用の環境を作る為にcloneします

 $ cd $HOME/work
 $ git clone $HOME/repos/hogehoge.git hogehoge_kaihatu

これでこのhogehoge_kaihatuで開発してpushしたらhogehogeでpullして反映するという状態になりましたとさ。
で、実はこれだけじゃだめで、もともと動いていたプロジェクトをリモートにaddしたのは良いのだけれど、
pullしようとしたらエラーで怒られました。

しらべたらこんな呪文をとなえよと書いてあったのでとなる事に

 $ cd $HOME/word/hogehoge/
 $ git config branch.master.merge refs/heads/master
 $ git config branch.master.remote origin

これで本番環境でもpullできるようになりましたとさ、めでたしめでたし