参考にしたページ
せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで : 僕は発展途上技術者
はじめてのgit - IDEA*IDEA 〜 百式管理人のライフハックブログ
Git ユーザマニュアル (バージョン 1.5.3 以降用)
以前からソース管理のツールを使ってみたいと思っていました。仕事で SCCS を使ったことはあるのですがどうも面倒で個人的には使っていません。最近は git というものが使われているようなので使ってみました。意外と使いやすいかもしれません。
基本は次のようになります。
3台のマシンを考えます。サーバとクライアント2台です。クライアントはクライアントのマスターをクライアントA、もう一台をクライアントBとします。また、サーバとクライアントのやり取りは ssh を使うことにします。
1、サーバ側 リポジトリの作成
# mkdir /var/git/アプリケーション名
# cd /var/git/アプリケーション名
# git --bare init
空のリポジトリが作成されます。なお、ディレクトリ等のアクセス権はユーザに対して書き込みが出来るように設定しておかないとクライアントからアップロードに失敗します。今回は所有者を変更します。
# chown ユーザ名 /var/git/アプリケーション名 /var/git/アプリケーション名/* /var/git/アプリケーション名/*/*
2、クライアントA側(master) でプログラムを作成する。
% mkdir アプリケーション名
% cd アプリケーション名
% git init
カレントディレクトリに .git ディレクトリが作成され、初期設定されます。
ファイルの追加
% git add ファイル名
% git commit -m 'コメント'
add で対象ファイルを追加する。ワイルドカードが利用可能です。コミットする際コメントが必要です。コメントを省略すると vi が起動して(たぶん環境変数の EDITOR を見ていると思います)コメントの入力が促されます。
3、クライアントAからサーバへ転送
% git remote add origin ssh://ユーザ名@ホストURL/var/git/アプリケーション名
origin を指定する。
git では、origin がサーバ上のリソース、master をローカルなリソースのことをいうみたいです。
% git push origin master
master を origin へコピーします。
4、他のクライアントBにプロジェクトを持ってくる(チェックアウト)
git リポジトリからソースを持ってくることをチェックアウトといいます。
% git clone ssh://ユーザ名@ホストURL/var/git/アプリケーション名
アプリケーションのディレクトリが作成され、その下にファイルが作成されます。
5、他のクライアントBからサーバへ
% git push origin master
クライアントBで修正した内容をサーバのリポジトリに反映させます。ここはどのクライアントでも同じです。
6、origin と同期する。
% git pull origin master
サーバ上のソースと合わせます。場合によってはコンフリクトとか起るんじゃないでしょうか。
・ブランチって何だ?
つまりは枝でしょ。分岐しなくてもブランチを作ることでマークを付ける意味があるんじゃないかな。ブランチしたところまで戻るのは簡単そう。間違ったブランチは後で削除できるだろうし。
ブランチの仕方。
% git branch
ブランチの様子を表示する。
% git branch ブランチ名
実際にブランチする。たとえば機能追加時に行うといいのかも。
ただし、まだ枝には移っていないので移動する。
% git checkout ブランチ名
% git branch
で実際に移動したかどうかを確認できます。以降の操作はブランチに対しての操作になります。
ブランチを統合することをマージといいます。
% git merge ブランチ名
運が良ければ成功します。運が悪いとコンフリクトが起きるので対処する必要があります。
修正ログをみる。
% git log