Gitの用語
Gitの用語集は既にあるのですが、Gitのエントリを書いていたら軽く用語集になっていたので分離しました。
リポジトリの中身等については言及していないので、以前まとめたGitの仕組みと併読するといいかもしれません。
公式の資料から定義を引っ張ってきたわけではなく、こういうことかな、と思ったことをまとめただけなので間違っているところがあるかもしれません。
リポジトリ (repository)
- オブジェクトの貯蔵庫。Gitではファイルやディレクトリ等々をオブジェクトとして表現する
- オブジェクトにはblobオブジェクトやtreeオブジェクト等がある
クローン (clone)
- サーバにあるリモートリポジトリをローカルにコピーすること
ステージングとステージングエリア(Index)
- 修正作業によって更新したもののうち、コミット対象の更新を選り分けるための作業。またその領域
- ステージングエリアの実体は、ステージに上がったオブジェクトを指し示すオブジェクトIDが詰まったバイナリファイル(Indexというファイル)
revert
- ステージングエリアに追加した変更を戻すこと
コミット (commit)
- 更新を確定すること
- 仕組み的には、更新によって作られたGitオブジェクトに対してtreeオブジェクトとcommitオブジェクトを付与すること
HEAD
- 現在チェックアウトされているブランチを指し示すポインタ
作業ツリー (Working Tree)
- ブランチ内から作業ディレクトリに展開されたファイル・ディレクトリ郡のこと
チェックアウト (checkout)
- ブランチから作業ツリーにファイル・ディレクトリを展開すること
- このとき、ステージエリアも切り替わる
マージ (merge)
- 当該ブランチに対して別のブランチの差分を取り込むこと
リベース (rebase)
- マージの一種。当該ブランチの更新差分を無かったことにして、別ブランチの最新を取り込んだ後、当該ブランチの更新差分を適用する処理
チェリーピック (cherry-pick)
- マージの一種。全ての差分を取り込むのではなく、特定のコミットを指定して取り込む。
- いまマージすると恐ろしいことになるけど、この変更だけは取り込んでおかないとこっちの作業ができない、なんてときに使う
- 意味:いいとこ取り
競合 (conflict)
- マージ(リベースを含む)の際に、同一のファイル・ディレクトリに対しての更新が発生していること。通常、競合を解消するために修正作業を行う
フェッチ (fetch)
- リモートリポジトリの最新を取り込むこと
プル (pull)
- フェッチを行い、さらに現在チェックアウトしているブランチに対してマージを行うこと
- 使用例:「それプルっちゃって」「プルってないじゃん」
圧縮コミット(squash)
- 複数のコミットを1つのコミットにまとめること
- バグが入り込んだコミットを無かったことにしようとしてコミットをまとめたとしても、リポジトリにはちゃんとオブジェクトの残骸が残っている(そのオブジェクトに対する参照が外れるだけ)
二等分 (bisect)
- 二分探索の要領で、バグが入り込んだコミットを突き止める作業
- bisectコマンドでコミットにマーキングしながら探索する
- 探索している間、まわりがドキドキしているのは気のせいではない
GitHub
- Ruby界隈に浸透しているプロジェクトホスティングサービス
- マスコットキャラクターは何故か上半身がネコで下半身がタコ
- http://d.hatena.ne.jp/keyword/GitHub
Pull Request
- GitHubのサービスで、相手に対して自分のブランチをpullしてもらうように要求する機能
本家
- GitHubにおいて、フォーク元のこと