Git勉強会(http://atnd.org/events/93)に参加してきました。
で、ここに書く内容は、まとめ的なものではなく、単に自分用メモなので、あしからず。。。

【git – 読み方:ギット】

各ファイルのパスと、差分情報のハッシュ値を記録。
オブジェクトデータベースと呼んでいるものに入れていく。
→この入れていった箱のようなものをリポジトリという。


・HEAD 歴史の先頭(最新)。コミットされたもの。
・Index HEADとWorktreeの中間的存在。コミットされた最新版をHEADから取得してくる&Worktreeでファイル編集したものをここにいれる。
     なぜIndexのようなステージングエリアがあるのか?
     →Worktreeには、バージョン管理するファイルのみがあるとは限らない!バージョン管理しているファイルとそのファイルの情報をIndexで管理することができる。そうすることによって、小刻みに丁寧に変更していくことができる。
・Worktree ここでファイルの内容を編集する。


CVSやSVNでは中心にサーバーがあって、そこからソースを持ってきて、その持ってきた場所に対してじゃないとコミットできないが、Gitは欲しい部分だけ差分をとってきたり、入れたりできる。

$ git clone git://git.or.cz/git.git my-git
$ cd my-git
$ edit README
$ git add -p

この-pオプションをつけると、細かくcommitしていい部分なのかどうかをコミット前に聞いてくれる。

$ git diff
$ git diff --cached
$ git commit

$ git diff –color-words 単語単位で変更点の色を変えてくれる。


HEAD→Index→worktree
この流れでworktreeでファイル編集作業をしている最中に、その作業とは別に、先にコミットしてしまいたい修正があった場合、
stash save
をすることによって、編集していた状態(HEAD→Index→worktreeの状態)を一時的に他の場所にセーブしておいて、HEAD→Index→worktreeをもとの状態に戻す。
〜そしてここで先にコミットしたかった修正をコミットする。〜
stash apply
をすることによって、stash saveでセーブしておいた状態にHEAD→Index→worktreeをもどせる。


A→B→C→D→E
の順でIndexに登録したとき、Bにもし間違いがあった場合は、
rebaseコマンドで何個前からすべてを書き換えるということができる。

$ git checkout -b

(ブランチをつくる)

$ git commit -a -s -v
$ git show

何をしたか見れる。

$ git grep -n -e 'VIA_823[56]'

git が知っているファイルからgrepしてくれる。(オプジェクトファイルなどは無視してくれる。)

$ git commit --amend -a

このamendオプションをつけると、さっきcommitしたものを捨てて、コミットする。


MacにGitをインストール
http://code.google.com/p/git-osx-installer/downloads/list?can=3

コメントは受け付けていません。