A Way of Code

興味の赴くままに書き綴っていきます。

Gitの用語

Gitの用語集は既にあるのですが、Gitのエントリを書いていたら軽く用語集になっていたので分離しました。

リポジトリの中身等については言及していないので、以前まとめたGitの仕組みと併読するといいかもしれません。
公式の資料から定義を引っ張ってきたわけではなく、こういうことかな、と思ったことをまとめただけなので間違っているところがあるかもしれません。

リポジトリ (repository)

  • オブジェクトの貯蔵庫。Gitではファイルやディレクトリ等々をオブジェクトとして表現する
  • オブジェクトにはblobオブジェクトやtreeオブジェクト等がある

クローン (clone)

  • サーバにあるリモートリポジトリをローカルにコピーすること

origin

upstream

ステージングとステージングエリア(Index)

  • 修正作業によって更新したもののうち、コミット対象の更新を選り分けるための作業。またその領域
  • ステージングエリアの実体は、ステージに上がったオブジェクトを指し示すオブジェクトIDが詰まったバイナリファイル(Indexというファイル)

revert

  • ステージングエリアに追加した変更を戻すこと

コミット (commit)

  • 更新を確定すること
  • 仕組み的には、更新によって作られたGitオブジェクトに対してtreeオブジェクトとcommitオブジェクトを付与すること

ブランチ (branch)

  • 概念的には木の幹(master)から生えてる枝。CVSのモジュールやSVNのtrunk+branchesに近いけど、遥かに柔軟
  • 仕組み的に言うと、リポジトリ内のオブジェクト群に対するオブジェクトグラフをツリーに見立てた時、特定のノードから辿れるオブジェクト群のこと。また、その特定のノードを指し示すポインタ
  • コミットをするとポインタが動く
  • DQNEO氏曰く、「別宇宙」

タグ (tag)

  • リポジトリ内のオブジェクト群を引っこ抜いてくるための目印
  • 一見ブランチと似ているが、ブランチとは異なり、指し示す場所が変動しない

HEAD

  • 現在チェックアウトされているブランチを指し示すポインタ

追跡/トラック (track)

  • Git上で変更内容を追跡できるようにすること
  • ファイルやディレクトリに対して言う場合は、Gitオブジェクトに変換してリポジトリに格納することを指す。リポジトリに管理されていないファイルはUntracked Fileである
  • 特に、ローカルブランチとリモートブランチとを紐付けすることを指す。ローカルにリモートブランチ(ポインタ)を作成し、Gitの設定ファイルにローカルブランチとリモートブランチとのリンクを設定する。

作業ツリー (Working Tree)

  • ブランチ内から作業ディレクトリに展開されたファイル・ディレクトリ郡のこと

チェックアウト (checkout)

  • ブランチから作業ツリーにファイル・ディレクトリを展開すること
  • このとき、ステージエリアも切り替わる

マージ (merge)

  • 当該ブランチに対して別のブランチの差分を取り込むこと

リベース (rebase)

  • マージの一種。当該ブランチの更新差分を無かったことにして、別ブランチの最新を取り込んだ後、当該ブランチの更新差分を適用する処理

チェリーピック (cherry-pick)

  • マージの一種。全ての差分を取り込むのではなく、特定のコミットを指定して取り込む。
  • いまマージすると恐ろしいことになるけど、この変更だけは取り込んでおかないとこっちの作業ができない、なんてときに使う
  • 意味:いいとこ取り

競合 (conflict)

  • マージ(リベースを含む)の際に、同一のファイル・ディレクトリに対しての更新が発生していること。通常、競合を解消するために修正作業を行う

フェッチ (fetch)

プル (pull)

  • フェッチを行い、さらに現在チェックアウトしているブランチに対してマージを行うこと
  • 使用例:「それプルっちゃって」「プルってないじゃん」

圧縮コミット(squash)

  • 複数のコミットを1つのコミットにまとめること
  • バグが入り込んだコミットを無かったことにしようとしてコミットをまとめたとしても、リポジトリにはちゃんとオブジェクトの残骸が残っている(そのオブジェクトに対する参照が外れるだけ)

二等分 (bisect)

  • 二分探索の要領で、バグが入り込んだコミットを突き止める作業
  • bisectコマンドでコミットにマーキングしながら探索する
  • 探索している間、まわりがドキドキしているのは気のせいではない

GitHub

Fork(フォーク)

Pull Request

  • GitHubのサービスで、相手に対して自分のブランチをpullしてもらうように要求する機能

本家

  • GitHubにおいて、フォーク元のこと