gitの基本用語まとめてみた!

こんにちは。今回はgitについての基本用語をまとめてみました。
何かありましたらコメントお願いいたします。
もっとこうしてほしいなどの意見もお待ちしております。


gitとgithubの違い

まず、そもそもgitとgithubってよく聞くけど、違いって何?って方に書きます。

git
gitとはプログラムソースなどの変更履歴を管理する分散型のバージョン管理システムのことです。
gitの特徴はローカル環境(自分のパソコンなど)に、全ての変更履歴を含む完全なリポジトリの複製が作成されるということです。
昔ではサーバーにある1つのリポジトリに対して変更後のファイルなどを置いて管理していました。しかしそれだとファイルが大量に置かれる上に、共同で開発する人が何人もいるとどのバージョンが最新なのか整合性が合わなくなってしまったりと色々問題がありましたが、gitの登場によって今までファイルを置いてたのが履歴で管理できるようになり、各ローカル環境がリポジトリのサーバーになれるのでコンフリクトが起きた際にもエラーを出してくれたり、整合性が取れるようになりました。

github
githubは、このgitの仕組みを利用して、世界中の人々が自分の作品(プログラムコードやデザインデータなど)を保存、公開することができるようにしたウェブサービスの名称です。


git基本用語


リポジトリ
履歴管理を行う場所


リモートリポジトリ
サーバーにあるリポジトリ。基本はベアリポジトリで運用される。


ローカルリポジトリ
自分のPCにあるリポジトリ。基本はノンベアリポジトリで運用される。


ベアリポジトリ
ワークツリーを持たず、チェックアウト、マージができないリポジトリ


ノンベアリポジトリ
ワークツリーを持ち、チェックアウト、マージができるリポジトリ


ワークツリー
履歴管理を行いたいファイルがある場所。


インデックス
コミットしたいファイル又はファイルの一部を登録するところ。


ステージ
ワークツリーからコミットしたいファイル又はファイルの一部をIndexに登録すること。


ハンク
変更した一範囲。


コミット
インデックスに登録してある変更対象をローカルリポジトリに反映すること。


リセット
コミット前の変更をローカルリポジトリの状態へ戻すこと。
また、特定のまで状態を戻すこと。ただし、ローカルリポジトリに限られる。


ヘッド
作業対象となっているブランチ、コミット。


チェックアウト
ヘッドを切り替えること。
過去のコミットを対象にチェックアウトした場合、それをもとにコミットすることはできない。


プッシュ
ローカルリポジトリの変更をリモートリポジトリに反映させること。


プル
リモートリポジトリの変更をローカルリポジトリに反映させること。フェッチ+マージ


フェッチ
最新の変更履歴を見つけてくること。


マージ
異なるブランチの変更を反映させること。お互いの変更履歴が残る。


リベース
異なるブランチの変更を反映させること。変更履歴が片方に集約される。


コンフリクト
マージ対象の2ファイルで同じ箇所が変更されている状態、衝突という意味。


ブランチ
履歴管理を枝分かれさせてたもの。ブランチを使うことにより、複数の履歴を並列に管理できる。


フォーク
他人のリポジトリを自分のアカウントのリモートリポジトリにコピーすること。


クローン
リモートリポジトリをコピーしてローカルリポジトリを作成すること。


プルリクエス
フォークしたリポジトリでの変更を、フォーク元のリポジトリへ反映するよう依頼すること。