【Git】Gitで使用される用語について

各用語について具体的なイメージを持つためにチュートリアルと併せて学習してみてください。
以下はチュートリアルのリンクです。

  1. Gitの基礎
  2. ブランチとマージの基本

リポジトリとは

Gitリポジトリを作成する

Gitがバージョン管理する領域(フォルダ/ディレクトリ)のことをRepository(リポジトリ: 倉庫, 金庫)といいます。

ディレクトリ内にあるファイルをリポジトリとして管理したい場合は、そのディレクトリでリポジトリを初期化(新規作成)するgit initコマンドを実行します。(コマンドはMacならターミナル、WindowsならGit Bashを利用します。)

また、ローカルのパソコン内のリポジトリのことをローカルリポジトリといい、リモートのサーバーにあるリポジトリをリモートリポジトリといいます。

リポジトリ作成のコマンド例

$ git init
        

バージョン管理とは

バージョン管理システム

ファイルの新規作成や修正後にバージョンに追加(コミット)することで誰が、いつ、どこを、なぜ修正したのか」などの情報を保存することができます。
また、過去のバージョンに遡(さかのぼ)ってファイルを更新することなども可能です。

このバージョン管理の方法には、バージョンごとのファイルの差分を保存する方法と、その時点でのファイルすべてを保存する方法(スナップショット)があり、バージョン管理システムによって異なります。

Gitはスナップショットでバージョンを管理します。

そのため構成がシンプルでブランチの作成が高速に実行できるなどの特徴があります。

コミットとは

コミットする

新規作成や変更したファイルをバージョンに追加することをCommit(コミット)といいます。

「ある一つの機能を作成した時」や「バグを修正した時」などにコミットを行うことで、その時点のファイルの状態を履歴に残すことができます。コミットの時には自由にメッセージを設定することができるため「どの様な目的で」変更や修正を行ったのかを記すこともできます。

このコミットした地点の状態にはいつでも戻すことができ、またコミットした地点から別の分岐を辿るバージョン管理を新たに追加することなどができます。

何か一つの事を実装したり修正した際のチェックポイントの様なもので頻繁にコミットします

コミットのコマンド例

$ git commit -m "メッセージ"
        

ステージングとは

変更したファイルをインデックスに追加(ステージング)する

コミットする前にはその対象となるファイルをインデックスに追加する必要があります
この変更したファイルをインデックスに追加することをステージングと言います。

コミットはステージングされているファイルをまとめて一つの変更履歴としてバージョン管理に追加します。

ステージングのコマンド例

$ git add [ファイル名]
        

ブランチとは

Gitのブランチ

Gitはリポジトリ内のファイルをバージョン管理しますが、厳密に言うと「リポジトリ内のブランチの中にあるファイル」をバージョン管理しています。

現在(2020/12)のところGitのデフォルトではmasterというブランチが作成され使用されています。

あるコミットされた地点から別のブランチを作成することで元のmasterブランチとは異なるバージョン管理を持つブランチを作成することができます。

それぞれ分岐したブランチはmerge(マージ)することで元のmasterブランチに併合することができます。

ブランチ作成のコマンド例

$ git branch [ブランチ名]
        

例えば、新しい機能を追加する場合を考えてみましょう。

もしmasterブランチに新機能を実装している最中に、既存機能のバグ(不具合)の修正が必要になれば新機能の開発を中断してバグを修正しなければなりません
さらに、新機能で書いたコードはどこに影響があるか分からないので新機能開発前の元の状態に戻してからバグを修正する必要があります
この時に、もし別のブランチで新機能を開発していたとしたらmasterブランチのコードを修正するだけで済むようになります。また、バグ修正用に別のブランチを作成することもできます

新機能が完成したら元のブランチとマージ(併合)することで簡単にmasterブランチに差分を反映することができます。

前のレッスン
次のレッスン

Twitterでアウトプット

理解したことや分からないところはTwitterでつぶやいてみよう!

この学習ページで学んだことをTwitterでアウトプットしてください。

アウトプットするメリット

学習仲間が増える

同じ課題を持った仲間が増えるため、学習へのモチベーションが継続しやすくなります。

より深く理解する

頭では理解したと思っていても、文章化することで初めて気づくことがあります。