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
エントリ (RSS)