Search on the blog

2011年12月4日日曜日

サーバー奮闘記(18) gitを使う


 結構前にgitはローカルとvpsともに入れていたのですが、GitHubにソースを上げるときくらいしか使ってませんでした。

 vpsにマスターのレポジトリを作って、ローカルにいくつかレポジトリを作ってpushしたりpullしたりして遊んでみました。簡単なメモを残します。

1. sshのconfigファイルの設定
 sshを使ってリモートログインしたいサーバーが複数台ある場合は、configファイルを書いておくと便利です。サーバーのアドレスや、sshのポート番号、どのrsa秘密鍵を使うのか、などを記述しておくと、sshコマンドを使う際にいろいろとオプションを書かなくてよくて楽です。

~/.ssh/config

HOST vps
 HostName 123.12.1.123
 Port 4321
 IdentityFile ~/.ssh/id_rsa_vps
 User taro

 それぞれのサーバーに付き、上のような設定を書いておくと、
ssh vps
のようにHOST名を書くだけでログインできるようになります。

2. サーバー側にbareリポジトリを作る
 調べてみた感じだと、2つやり方があるようです。1つ目は、サーバー上で普通のレポジトリを作成して、それをbareリポジトリにcloneして、さらにそれをローカルにcloneするという方法。2つ目は、サーバー側にbareレポジトリを作成して、クライアント側でリモートサーバーを登録する方法です。

1つ目の方法だと、cloneした時点で、push/pull先が自動でremoteに登録されるので明示的にリモートサーバー名を追加する必要はありません。ただし、サーバー側でcloneする前に、適当なファイルを作ってcommitしておかないといけません。

2つ目の方法は、サーバー側では
$ git --bare init
とするだけです。ただし、1つ目の方法と違って、remoteサーバー名が自動で登録されないので、サーバーに名前を付けたい場合(※)は、
$ git remote add origin ssh://vps/~taro/git/repos/hello
のようにremote サーバーを明示的に追加する必要があります。

※remoteサーバー名は必ず登録する必要はないですが、毎回push/pullする際に
$ git push ssh://vps/~taro/git/repos/hello
とするのは面倒なので、登録しておいた方が便利。

おそらく2つ目のやり方の方が一般的かと思います。

0 件のコメント:

コメントを投稿