Vine Linux 4.2 に git のパッケージがあったので、使ってみました。
下記の手順の中で、別の場所に新しいディレクトリをまったく作らないで作業ができている、というところが、CVS や Subversion と異なる点(手軽さという意味で大きなメリット)だと思います。
インストール(Ubuntu でも同様)
$ ssh yellow
$ sudo apt-get update
$ sudo apt-get install git-core
- Vine 3.x には git-core パッケージはないみたいです
個人のデフォルトを設定する
git config --global user.email "nishimoto@m.ieice.org"
git config --global user.name "Takuya Nishimoto"
既存のディレクトリをバージョン管理下におく。ここでは職場で使っている bibdb という自前ツールの例。
$ cd /export/htdocs/html/bibdb/
$ git init
- カレントディレクトリに .git ディレクトリが作成され、これがレポジトリになる
管理したいファイルを追加する
$ git add *.php *.txt
$ git add cgi-bin/update_publication.cgi
$ git add *.jpg *.gif .htaccess
追跡されているファイルとされていないファイルを確認する
$ git status
commit する
$ git commit -m "first commit"
- これにより、追跡されているファイルが .git 内に保存され、比較・復元が可能になる
編集してみる
$ emacs -nw 00readme.txt
差分を確認
$ git diff
diff --git a/00readme.txt b/00readme.txt
index ff26fee..c15f626 100644
--- a/00readme.txt
+++ b/00readme.txt
@@ -4,3 +4,7 @@
TODO:
<A5><A2><A5><C3><A5><D7><A5><ED><A1><BC><A5><C9><A4><B5><A4><EC><A4><BF>pdf<A4><F2>chmod 644<A4><B9><A4>
+
+2009-03-06 by nishimoto
+
+ $ git init
差分を commit する
$ git commit --all -m "readme updated"
[master]: created b5f0737: "readme updated"
1 files changed, 4 insertions(+), 0 deletions(-)
履歴を確認する
$ git log
commit b5f073788c35befd95f5a907777c221f17e63d1e
Author: Takuya Nishimoto <nishimoto@m.ieice.org>
Date: Fri Mar 6 17:01:05 2009 +0900
readme updated
commit 42dff939ec85d2faa212ba42ff617f5fdac215e6
Author: Takuya Nishimoto <nishimoto@m.ieice.org>
Date: Fri Mar 6 16:42:51 2009 +0900
first commit
ブランチを確認する
$ git branch
* master
ブランチを作る
$ git branch experiment
$ git branch
experiment
* master
別のブランチで作業してみる
$ git checkout experiment
Switched to branch "experiment"
$ emacs -nw 00readme.txt
$ git diff
diff --git a/00readme.txt b/00readme.txt
index c15f626..be17e40 100644
--- a/00readme.txt
+++ b/00readme.txt
@@ -8,3 +8,8 @@ TODO:
2009-03-06 by nishimoto
$ git init
+
+2009-03-06 by nishimoto
+
+ git branch : experiment
+
experiment ブランチに commit する
$ git commit --all -m "00readme modified"
[experiment]: created 609c427: "00readme modified"
1 files changed, 5 insertions(+), 0 deletions(-)
master ブランチに戻す
$ git checkout master
Switched to branch "master"
$ cat 00readme.txt
[yellow]
/home/httpd/html/bibdb/
TODO:
アップロードされたpdfをchmod 644する
2009-03-06 by nishimoto
$ git init
experiment の更新を master にマージする
$ git merge experiment
Updating b5f0737..609c427
Fast forward
00readme.txt | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
マージできたことを確認する
$ git branch
experiment
* master
$ cat 00readme.txt
[yellow]
/home/httpd/html/bibdb/
TODO:
アップロードされたpdfをchmod 644する
2009-03-06 by nishimoto
$ git init
2009-03-06 by nishimoto
git branch : experiment
リンク
更新記録
- 2009-03-10 : 事前に git config で user.name などを指定するようにしました。