
- git add, commit, pushって何してるの?
- ステージングエリア、作業ディレクトリって何?
- 自信をもってgitを使いたい
こんなお悩みを解決できるようプログラミングに関する単語を使わずに周りにあるものを使って説明します。
この記事を書いた人

- 教育学部→Web系エンジニア
- 学習を始めて7か月でTOEIC850点を取得
- TESOL, TEFL certifcateという世界120ヵ国以上で認められた英語を英語で教える資格を所持
Gitとは?開発に必須のファイルの変更履歴を記録・管理できるシステム

Git(ギット)は、ファイルの変更履歴を記録・管理できるシステムです。
特に、プログラム開発などで使います。
どうしてgitがほぼ必須といわれるほど使われるのかというと、
ファイルを過去の状態に戻せる
どのファイルを誰がいつ変更したかがわかる
チームで同プロジェクトを分担して安全に開発できる
作業ディレクトリ・ステージングエリア・ローカルリポジトリなど必須単語を解説

具体的なコマンドの前にまず作業ディレクトリ、ステージングエリア、ローカルリポジトリ、リモートリポジトリについてお話します。
① 作業ディレクトリ(ワーキングディレクトリ)
実際に編集しているファイルのある場所
パソコン上で直接触れる、テキストエディタなどで開くファイルがある場所になります。
②ステージングエリア
コミットする内容を一時的にためておく場所。
インデックスとも呼ばれます。
③ ローカルリポジトリ
自分のパソコン内で、Gitが変更履歴を管理している場所
他人と共有はされていません。
④ リモートリポジトリ
GitHubなどのサーバー上にあるリポジトリ
チームで作業するときに、みんなが共有・更新する場所。
どうですか?理解できたでしょうか。
安心してください。
初心者なのにこれだけで理解できる人は中々いないと思います。
プログラミングの用語を使わずにわかりやすく説明していきます。
プログラミング用語0!周りにあるものでgit必須単語を解説!

日常生活におきかえて簡単に作業ディレクトリ、ステージングエリア、ローカルリポジトリ、リモートリポジトリを解説します。
机の上で宿題をしている子供に置き換えて各単語を解説していきます!
作業ディレクトリ(ワーキングディレクトリ):宿題をしている机の上
あなたが小学生の頃を思い出してください。
毎日たくさんの宿題があって大変でしたよね。
作業ディレクトリはあなたの机の上のことを指します。
先ほどはパソコン上で直接触れる、テキストエディタなどで開くファイルがある場所と説明しましたが、あなたが宿題をしている机の上がまさに作業ディレクトリです。
ステージングエリア (Staging Area) :おわった宿題をいれるランドセルや提出用のファイル
ステージングエリアはおわった宿題をいれるランドセルや提出用のファイルです。
宿題って算数、国語、理科、日記などいろいろありましたよね?
いったん算数の宿題がおわったら机の上に出しっぱなしにしておいても邪魔ですし、もしかしたら算数のノートに他の教科の宿題をしてしまうこともあるかもしれないので、一旦ランドセルだったり、机の上のファイルに整理しませんでしたか?
これでおしまいだから忘れないようにランドセルにしまっておこう、また後で見直ししたりからファイルにいれておこうといったあくまでも提出の準備をしておく場所がステージングエリアになります。
重要なのが、まだ提出していないのでランドセルにしまった宿題の内容を簡単にいつでも修正したり、取り出したりできます。
ローカルリポジトリ:自分の家の引き出しにやった宿題のコピーと提出記録をいれる
自分のパソコンの中にある変更履歴の記録帳のようなものをローカルリポジトリといいます。
なのでローカルリポジトリは自分の家の引き出しにやった宿題のコピーと提出記録をいれることになります。
重要なのは、先生などには提出していないので他の人から見られることはありません。
リモートリポジトリ:学校に行って先生に宿題を渡す、提出Boxにいれること
リモートリポジトリは、学校に行って先生に宿題を渡すこと、または提出Boxに提出することをいいます。
リモートリポジトリに入れる理由は主に以下の二つです。
・バックアップ
・共同作業のため
もしあなたが宿題をおえて自分の引き出しにコピーをとっていたとしても家族が捨ててしまったりするとせっかくやった宿題が無意味になります。
なので提出Boxにいれる(リモートリポジトリ)ことで万が一、あなたが宿題をなくしてしまってもいつでも大丈夫になります。
あなたが静岡県について調べる宿題を提出しましたが、先生がほかの県について調べた人と協力して東海地方についてまとめてという新たな指示をしてきた場合にリモートリポジトリにあなたの宿題を提出しておくことであなたは他の人がやった内容を簡単にみて自分の宿題の内容に反映したり、他の人もあなたの宿題の内容を見て進めることができます。
そうですよね、最初は概念が難しいかもしれません。大丈夫です、もっと具体的に、シンプルな例で説明しますね。
基本的なGitコマンドを分かりやすく解説!

ここまでgitの基本単語についてプログラミング用語をあまり使わずに説明してきましたが、本章ではgit add, commit, push, mergeなどは何をしているのか、簡潔に解説していきます。
git add
git addはあなたが机の上でやった宿題を提出する準備としてランドセルやファイル(ステージングエリア)にしまいます。
つまり、作業ディレクトリでの変更をステージングエリアにいれることです。
git commit
git commitは提出する準備としてランドセルやファイルにいれたファイルを変更履歴やその内容を自分の引き出しに控えとしてしまうことです。
つまり、ステージングエリアに入っている内容をローカルリポジトリに移動させます。
git push
git pushは引き出しにいれた宿題に取り組んだ履歴とその内容を学校の提出Boxにいれることです。
つまり、ローカルリポジトリに入っている内容を他の人に共有できるようにリモートリポジトリに移動させます。
git fetch
git fetchは他の人がやった宿題の内容を見たい場合に提出Boxから内容を控えとして別で確認できるように持ち帰り、自分の引きだしにいれることです。
つまり、リモートリポジトリの内容をローカルリポジトリに反映させます。
git merge
git mergeとは、自分の引き出しにある変更履歴や宿題のコピーを自分の机の上のプリントに反映させることです。
つまり、ローカルリポジトリの内容をもとに作業ディレクトリの内容を更新します。
git pull
git pullはfetchとmergeを1つで実行できるコマンドです。
git stash
git stashはいきなり母親が部屋にはいってこようとしたときに机の上の宿題を急いで押し入れにいれるイメージです。
あなたが今作業している変更を、一時的にどこかへ避難させて、机の上(作業ディレクトリ)をクリーンな状態に戻します。
ここでいう「押し入れ」はこれまで説明した作業ディレクトリ、ステージングエリア、ローカルリポジトリ、リモートリポジトリとはまた別の場所になります。
押し入れに一旦しまっておくだけなのであとで自分が元に戻したいときに宿題を机の上に戻すことができます。
【ピアソンVUE|OnVUE】AWSオンライン受験のトラブル解決まとめ

今回はgitについて身の回りのものを挙げて説明しました。
gitの各コマンドが具体的に何をしているのかなんとなくで使っていると間違えてリモートリポジトリに変更を加えてしまってチーム全体に影響がでるということもあるのでまずはこの記事で紹介した基本単語を理解してイメージしながらgitにふれていきましょう。
最後まで読んでくださってありがとうございました。
AWS試験の学習方法について
ChatGPT・Geminiを使いこなしたい人必見!
SNSはこちらから
twitter https://moile.twitter.com/QTzmttr1FeEYck
主に勉強記録を更新しています。
note https://note.com/arichan0/
SNSはこちらから
twitter https://moile.twitter.com/QTzmttr1FeEYck
主に勉強記録を更新しています。
note https://note.com/arichan0/
コメント