バージョン管理システムには専用の用語が多くあるので、使用頻度が高いものを説明します。
インデックス (Index)
コミットしたいファイル・ディレクトリを記録します。
コミット (commit)
作業ツリーの変更をリポジトリに反映させることです。
コンフリクト (conflict)
マージの際にコンフリクトと呼ばれる問題が発生する場合があります。コンフリクトとは、マージ対象のブランチ間で同じファイル・ディレクトリで異なる変更をしていた状況を言います。
クローン (clone)
リモートのリポジトリをローカルやサーバ等に複製することです。
作業ディレクトリ (Working Directory)
チェックアウトしたブランチからファイルやディレクトリが展開される領域です。
ここでファイルの編集、削除、追加などの処理を行います。
ステージ (stage)
作業ツリーの変更をインデックスに登録(git add)することをステージと呼びます。
ステージング (staging)
コミットしたいファイルをインデックスに追加することをステージングと呼びます。
タグ (tag)
後から参照しやすいようにコミットに対して付けた名前をタグと呼びます。
Gitでは3種類のタグをサポートしています。
- 軽量タグ(lightweight tag)
- 名前のみ付けられる。
- 注釈付きタグ(annotated tag)
- 名前、タグを付けた人の名前やタグをつけた日時、コメントを付けられる。
- 署名付きタグ(signed tag)
- 注釈付きタグに加えてGPG/PGPによる署名を施したタグです。
チェックアウト (checkout)
ブランチからファイルやディレクトリを作業ツリーに展開し、ステージエリアを切り替えることです。
フェッチ (fetch)
リモートリポジトリにあるブランチの最新を取得することです。
フォーク (fork)
GitHubのサービスで、GitHubに登録されているリポジトリを自分のリポジトリとしてコピーできる機能です。
コピー後は元リポジトリから独立しますが、その変更をフォーク元のリポジトリにプル・リクエストすることができます。
フック(hook)
Gitには特定のアクションに対してスクリプトを実行するためのフック(hook)という機能が用意されています。
たとえば、プッシュしたあと、自動的にデプロイさせるといったことも簡単に実現できます。
プッシュ (push)
コミットした変更をリモートリポジトリに反映させることです。
ブランチ (branch)
Branchは、英語で「木の枝」「分岐」などを意味します。
ソフトウェア開発では、主流の開発から分岐したコード群をブランチと呼びます。
Gitでは特定のコミットを指し示すポインタを意味します。Gitのデフォルトのブランチ名は master です。最初にコミットした時点で、自動的に master ブランチが作られ、その後は、コミットの度にポインタが進んでいきます。
新しいブランチを作成するということは、新たな分岐先を指すポインタを作成すると同義です。
Gitにはローカルブランチ、リモートブランチ、リモートトラッキングブランチの3種類があります。
プル (pull)
リモートリポジトリから変更を取得(フェッチ)し、ブランチにマージすることです。
プル・リクエスト (Pull Request)
GitHubのサービスで、自分のブランチをプルしてもらうように要求する機能です。
ベア・リポジトリ (bare repository)
リポジトリはが作業用(non-bare)と更新管理用(bare)に分かれており、作業用ディレクトリをもたないリポジトリをベア・リポジトリと呼びます。
Gitでは不整合を避けるために作業用ディレクトリをプッシュせず、更新管理用のみのベア・リポジトリに対してプッシュすることが推奨されています。
マージ (merge)
特定のブランチに対して、別のブランチの差分を適用することを意味します。
master
デフォルトのブランチです。
リバート (revert)
ステージングエリアに追加した変更を戻すことです。
リポジトリ (repository)
ファイルやディレクトリなどのオブジェクトを一元的に格納・管理するための機構です。
リモートトラッキングブランチ
リモートブランチをローカルリポジトリでトラッキングするためのブランチです。
リモートブランチ
リモートリポジトリで管理されるブランチです。
ローカルブランチ
ローカルリポジトリで管理されるブランチです。