忘れないようにメモっとく

機械学習とかプログラミングとか。

gitリモートレポジトリの設定 ~ec2~

bare(ベア)レポジトリ

gitのレポジトリにはbareレポジトリと開発レポジトリがある。
bareレポジトリでファイルを追加したり、commitしたりってことはしない。
というかbareレポジトリで作業することはない。

じゃあ、何のために使うかというと、リモートレポジトリに置いて、複数人で開発を進めるときに便利。
開発者は、bareレポジトリからcloneしたあと、pushやfetchを使って作業を進める。
直接リモートのファイルをいじるのは、なんか危険だからね。

リモートレポジトリの作成

リモートサーバで適当にbareレポジトリを作る

$ mkdir ~/test_repo
$ cd ~/test_repo
$ git init --bare --shared

共有用に、--sharedを使う。
この後、ローカルレポジトリへcloneしてもいいし、ローカルレポジトリからpushやfetchでもよいよ。

ローカルレポジトリでclone

$ git clone ssh://ec2-user@42.209.113.117/home/ec2-user/test_repo

ローカルレポジトリからpushやfetch

$ mkdir test_local_repo
$ cd test_local_repo
$ git init
$ git remote add origin ssh://ec2-user@42.209.113.117/home/ec2-user/test_repo
$ git push origin master

認証鍵の指定

リモートサーバには公開鍵の登録をしているだろうから、sshプロトコルをそのまま使うとサーバに弾かれる。(正しい挙動)
でも、git側で秘密鍵の指定が無いっぽいので、~/.ssh/configのほうで設定しておく。

Host 42.209.113.117
User ec2-user
HostName 42.209.113.117
PreferredAuthentications publickey
identityfile ~/.ssh/id_rsa