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に相当する。
あとで
ブランチ一覧を見る
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 -- 変更したファイル
EGitプラグインをインストール
Puttyで鍵を生成している場合は秘密鍵をOpenSSH形式に変換しておく。
以下の設定を開く
メニュー -> Window -> Preference -> General -> Network Connections -> SSH -> General
SSH2 HOMEのディレクトリに秘密鍵を置くか、ディレクトリを変更する。add private key で設置した秘密鍵を追加する。
git pullのやり方が分からん…