Gitのリモートリポジトリ操作

※本エントリは、謝りを含んでいる可能性があります。

2ユーザで、リモートリポジトリにpush~pullする操作のテスト。
branch、merge、rebaseなどは追って・・・。

■サーバ側でリモートリポジトリを作成する。

$ sudo mkdir -p /usr/local/git/test.git
$ cd /usr/local/git/test.git/
$ sudo git --bare init --shared=true

■クライアント側で、ローカルリポジトリを作成する。

[user1@server ~]$ git init

ユーザ登録しておく

[user1@server ~]$ git config --global user.name "user1"
[user1@server ~]$ git config --global user.email user1@mail

新規ファイルをコミット

[user1@server ~]$ $ touch test.txt
[user1@server ~]$ $ git add test.txt
[user1@server ~]$ $ git status
[user1@server ~]$ $ git commit -m "test commit"

リモートリポジトリの追加

[user1@server ~]$ $ git remote add origin ssh://user1@reposerver:22/usr/local/git/test.git
[user1@server ~]$ $ git remote -v
origin ssh://user1@reposerver:22/usr/local/git/test.git (fetch)
origin ssh://user1@reposerver:22/usr/local/git/test.git (push)

リポジトリサーバにpush

[user1@server ~]$ $ git push origin master

■クライアント側、別のユーザ(user2)でclone ユーザ登録しておく

[user2@server ~]$ git config --global user.name "user2"
[user2@server ~]$ git config --global user.email user2@mail

チェックアウト

[user2@server ~]$ git clone ssh://user2@reposerver:22/usr/local/git/test.git

ユーザ2で追加コミット、リポジトリサーバにpush

[user2@server ~]$ $ touch test2.txt
[user2@server ~]$ $ git add test2.txt
[user2@server ~]$ $ git status
[user2@server ~]$ $ git commit -m "test2 commit"
[user2@server ~]$ $ git push origin master

■クライアント側、user1で取り込み

[user1@server ~]$ $ git pull origin master

参考:

http://git-scm.com/book/ja/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%81%A7%E3%81%AE%E4%BD%9C%E6%A5%AD

http://open-groove.net/git/git-branch-merge/