目次

Git

Gitは、フリーでオープンソースのバージョンコントロールシステム。Linuxのカーネル開発のためにLinus Torvaldsによって開発された。現在のRuby on Railsなど有名なプロダクトの開発もGitを使って行われており、人気が高まっている。

インストール

Debian系

sudo aptitude install git-core

MacOSX(オプションがいくつかあるのでvariantsで調べて)

sudo port install git-core

個人でバージョン管理

Gitは基本的にSVNのように中央リポジトリを必要としない。ワーキングディレクトリがそのままGitのリポジトリになる。

cd my_project
git init 

my_projectのファイルを追加

git add . 

コミット

git commit 

コミッタ名の変更

コミッタ名とメールアドレスを変える

git config user.name nullpon
git config user.email nullpon@example.com

みんなで作業

サーバ上に中央リポジトリを設置する。これは各メンバーがソースコードに対して平等に権限を持ってる場合に適用する方法。

サーバ上の /var/git/repo/hoge.git というディレクトリ(ディレクトリ名は必ず 〜.git という名前にすること)で

git --bare init 

hoge.gitが中央リポジトリになる。中央リポジトリはワーキングディレクトリとして使えない。

既に存在する個人のリポジトリを中央リポジトリにする場合は、以下のようにクローンして作成できる。

git --bare clone project project.git

各メンバーはサーバ上の中央リポジトリをクローンする。

git clone ssh://nullpon@paulownia.jp/var/git/repo/hoge.git

各メンバーは各自のローカルで作業する

git add lib/hoge.rb
git commit 

コミットはクローンしたローカルのリポジトリにしか反映されない。手元の変更を中央リポジトリに反映するには

git push ssh://nullpon@paulownia.jp/var/git/repo/hoge.git master

これは意味は、ssh:… の master ブランチに手元のリポジトリの内容を push するという意味。ssh:… には clone したときにoriginという名前が付いているので

git push origin master

と書ける。さらに、cloneしたときにデフォルトがリモートはorigin、ブランチはmasterが設定されているので

git push 

と書くことができる。

中央リポジトリに加えられた変更を手元に反映するには

git pull origin master
git pull

なお、GITのmasterブランチはSVNでいうtrunkに相当する。

svnリポジトリを中央リポジトリとして使う

あとで

ブランチ

ブランチ一覧を見る

git branch 

ブランチ作成

git branch ブランチ名

ブランチ切り替え

git checkout ブランチ名

ブランチの削除

git branch -d ブランチ名 (他のブランチにマージしないと削除できない)
git branch -D ブランチ名 (マージされていないブランチを強制削除)

マージの仕方(ブランチhogeをmasterにマージ)

git checkout master 
git diff hoge (差分の確認)
git merge hoge

コミット前の変更を取り消す

git checkout -- 変更したファイル

Eclipseで使う

EGitプラグインをインストール

Windows

Puttyで鍵を生成している場合は秘密鍵をOpenSSH形式に変換しておく。

以下の設定を開く

メニュー -> Window -> Preference -> General -> Network Connections -> SSH -> General 

SSH2 HOMEのディレクトリに秘密鍵を置くか、ディレクトリを変更する。add private key で設置した秘密鍵を追加する。

git pullのやり方が分からん…