再再々度入門

// gcc と zlib-devel が必要
$ wget http://kernel.org/pub/software/scm/git/git-1.7.3.2.tar.bz2
$ tar xvfj git-1.7.3.2.tar.bz2
$ cd git-1.7.3.2
$ mkdir -p ~/usr/local
$ ./configure --prefix=$HOME/usr/local
$ make
$ make install
$ echo "PATH=\$PATH:\$HOME/usr/local/bin" >> ~/.bashrc

// 上記の.gitconfigをおもむろに貼りつけ(nameとmailは書き換える)
$ vi ~/.gitconfig
    • アプリ作成開始
$ mkdir remote_inst
$ cd !$
$ cat >test.pl
#!/usr/bin/perl

use strict;
use warnings;

print "hello world!\n";
exit 0;

// ローカルリポジトリ
$ git init
$ git add test.pl
$ git ci -m "first commit"

// リモートリポジトリ
$ ssh 192.168.1.8 mkdir -p  git/remote_inst.git
$ ssh 192.168.1.8 git --bare init git/remote_inst.git
Initialized empty Git repository in /home/nymph/git/remote_inst.git/

// リモートリポジトリはどこか登録
$ git remote add origin ssh://nymph@192.168.1.8/home/nymph/git/remote_inst.git
fatal: remote origin already exists.
// もう既に登録済みエラー。実験で作成したのが残っていたので削除する
$ git config -l | grep origin.url
remote.origin.url=ssh://nymph@192.168.1.8/tmp/remote_inst
$ git remote rm origin
// 改めて
$ git remote add origin ssh://nymph@192.168.1.8/home/nymph/git/remote_inst.git
// 送信!
$ git push origin master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 273 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://nymph@192.168.1.8/home/nymph/git/remote_inst.git
 * [new branch]      master -> master

// できたかな?
$ mkdir ../tmp
$ cd !$
$ git clone ssh://nymph@192.168.1.8/home/nymph/git/remote_inst.git
Cloning into remote_inst...
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
  • まとめ
    • とりあえず最低限覚えるのは以下2つ
      • git clone ssh://xxx@x.x.x.x/xxx/xxx/ # リモートリポジトリから取得する
      • git push origin master # リモートリポジトリに反映する
    • リモートリポジトリ管理する人は
    • リモートリポジトリは上記みたいな自分しかアクセスできないような場所じゃなくて/var/xxx/とか皆がアクセスできるところにする。
  • 追記 リモートリポジトリはこんな風にしてみた
# mkdir /var/git/
# chown root.users !$
# chmod 2770!$

$ ssh 192.168.1.8 mkdir /var/git/remote_inst.git
$ ssh 192.168.1.8 git init --bare --shared  /var/git/remote_inst.git
$ git remote add origin ssh://192.168.1.8/var/git/remote_inst.git
$ git push origin master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 273 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://192.168.1.8/var/git/remote_inst.git
 * [new branch]      master -> master