【GitHub / Eclipse】Gitコマンド「add」って何??【Java勉強ログ #13】

IT系知識

※本記事はJavaの勉強がてら、自分達の学んだことを備忘録的に残しておくことが目的です。
素人が四苦八苦しながらJavaを学び、何かしら作り上げていきます。
その過程を楽しんでいただければ、そしてそれが、少しでも誰かのためになれば嬉しいです。

はじめに

さて今回は、Gitコマンド「add」って何??についてまとめたいと思います。

前回、「commit」・「pull」・「push」についてまとめたかと思います。

それらのGitコマンドと同じくらい、「add」も重要ですので、是非この機会にどんなことをやっているのか理解していただければ嬉しいです。

何をやっているのか理解できた方が、実際に実行するときにしっくりきますしね。
(耳タコなくらい何回も言っていますが・・・)

具体的な実行手順も以降の記事でまとめますので、そちらをチェックです~

第4の保存場所、「ステージ」を理解しよう

さてさて「add」とは・・・

と行きたいところですが、「add」の説明へと入る前に、まずは第4の保存場所「ステージ」とは何ぞや??ってところを理解しましょう。

以前、Gitでは3つの重要な保存場所(リモートリポジトリ、ローカルリポジトリ、ワークツリー)があるとお伝えしたかと思います。

「commit」・「pull」・「push」では、これら3つの保存場所を理解していることが非常に重要でした。

ただ実は、「add」を理解するためにはもう1つ、これら3つの保存場所に加えて、4つ目の保存場所についても知っておく必要があります。

そう、それが「ステージ」です。

この「ステージ」とは、変更されたファイルや新しく作成されたファイルを次のコミットの対象とするために、一次的に準備するエリアのことです。「ステージ」に変更が追加されると、それらの変更が次のコミットで保存されます。

まぁ簡単にイメージを持つとするならば、「ワークツリー」と「ローカルリポジトリ」の間に「ステージ」と呼ばれるエリアがあるような感じでしょうか。

とりあえずこれだけ覚えておけば、次に説明する「add」もしっくりするはずです。

「add」って何??

さぁ、お待たせしました。いよいよ「add」の説明です。

Gitの「add」コマンドは、変更されたファイルをチームの共有リポジトリ(リモートリポジトリ)へと反映する前の一次保存的な役割を果たします。

「add」コマンドを使用することで、Gitは指定したファイルやディレクトリの変更を追跡し、「ステージ」に変更内容を追加します。
(文字通り「add」・・・)

「ステージ」に追加されたファイルは、次に行われるcommit(リポジトリに変更を保存する操作)の対象となります。

まぁ色々言いましたが要するに、「add」を利用することで、「ワークツリー」から「ローカルリポジトリ」へと急にあげるのではなく、いったん「ステージ」へと保存ができるようになるというわけです。

「add」がどんなことをやっているのか、何となくイメージできてきましたか??

「add」の利点

ではなぜ、「add」を使う必要があるのでしょうか。

正直、いきなり「commit」でいいじゃん!と思いませんか??
(私はそう思ってました・・・)

一番の利点は、変更内容を細かく分割して「ステージ」に追加することで、変更のスコープをcommit単位で柔軟に制御することができるようになるということです。

ん??なんだかよく分からないことを言いだしたぞ・・・と思いましたか??

大丈夫です、もう少し噛み砕いて説明しますね。

例えばワークツリー上で、以下の作業を同時にやっていたとします。

  • ファイルAのバグ修正
  • ファイルBの新規開発(新しくコーディング)

このまま「ステージ」を介さずにcommitしてしまったら、「バグ修正」と「新規開発」が同時にローカルリポジトリへと上がってしまいますよね??

これはあんまりよくないです。

本来であれば、「バグ修正」と「新規開発」は全く別の作業ですので、それぞれ別々にcommitしてあげることが管理上良いはずですよね??

こんな時に、「add」が役立ちます。

「バグ修正」が終わったら、いったん「add」を実行し、「ステージ」へと一次保存してあげます。

その後commitしてあげることで、「新規開発」分はローカルリポジトリへとは上がらずに、「バグ修正」分だけがきっちりと反映されるようになります。

こんな感じで「add」は、プロジェクト内の一部の変更だけをcommitしたい場合や、変更の確認やレビューを行いたい場合等に非常に便利です。

ファイルの追加や削除、変更の検出など、Gitのトラッキング範囲内で行われる変更の管理に広く使われますので、皆さんも是非利用してみてくださいね。

最後に・・・

さて今回は、Gitコマンド「add」って何??についてまとめました。

この記事を通して、「ステージ」や「add」とは何なのか??、何のために「add」を実行する必要があるのかについて、ご理解いただけたかと思います。

何度も言いますが、実際にコマンド実行する前に、そもそもの動作を理解しておくことがとても重要なはずです。
(少なくとも私は強くそう思っています。)

簡単にポイントをまとめておきますので、これを機会にしっかりとおさえておきましょう。

ステージ:
ワークツリーとローカルリポジトリの間にある第4の保存場所
一次保存場所的な役割を持つ

add:
特定のファイルをワークツリーからステージへとあげるコマンド

addの利点:
変更内容ごとの管理運用がしやすくなる

前回まとめた記事も読んでもらえると嬉しいです!

Java以外の勉強記事も是非!

以上、次回はコマンド実行編でお会いしましょう~

オススメ参考書 & Udemy講座

以下に、私がオススメする参考書と、Udemyの講座を載せておきますね。

是非参考にしてみてください。

オススメ参考書

Javaのオススメ参考書はこちらです。

更なる高みを目指す方はこちらも是非!

GitHubのオススメ参考書も見つけたら、そのうち載せますね~

オススメUdemy講座

GitHubのオススメUdemy講座はこちらです。

JavaのオススメUdemy講座も見つけたら、そのうち載せますね~

コメント

タイトルとURLをコピーしました