GitとGitHubの当たり前なお話
福工大のじょぎっていうサークルに入部している4年の柳井です。
初めてGitとGitHub触る人とかに教えてる抽象的なお話をしていきます。
はじめに
※注意
- 間違いがあるかもしれません
- あたたかい目でお願いします
対象者
- Git・GitHub初めましてっていう人対象
お話
※ここでは基本的な操作のadd,commit,pushのお話をします。
最初に質問です。
教える側の立場の人たちに、add,commit,pushをどう説明されていますか?
何も考えずに魔法の言葉(おまじない)みたいなものだからこれすればいいよっと言われて理解をせずにずっと理解をおまじないのままで済ましている人は多いと思います。
この記事はそんな人の理解の補助になってくれたら幸いです。
私たちが普段行っている作業を「自分の部屋」での活動に例え、GitHubを「配送先の倉庫」だとイメージしてください。
1. add:荷物を段ボールに詰める作業
まずaddは、自分の部屋(作業ディレクトリ)で変更したファイル(作成した書類や変更した服など)を、わかりやすいように段ボール箱に詰める作業です。
部屋に散らかっているもの(変更ファイル)全部ではなく、「これは新しく追加した機能、あるいは修正した部分としてひとまとまりだ」と決めたものだけを選んで箱に入れるのが git add の役割です。
何も考えずに魔法の言葉(おまじない)みたいなものだからgit add .すればいいよっと言われて理解をせずにずっと理解をおまじないのままで済ましている人は多いと思います。
わかりやすいように箱に入れるのが git add の役割です。git add .は、全部の変更を箱に入れてしまうので、ファイルを個別に選択してgit addするように心がけましょう。
2. commit:段ボールに送り状を貼って封をする作業
次に commit は、段ボールをガムテープで完全に封をし、送り状に中身の説明(何を直したか、何を追加したか)と日付を書いて貼り付ける作業です。
addで選んだ機能のまとまりを、「一つの記録」として確定させています。
この送り状に書く「中身の説明」が、プログラミングにおいて非常に重要なコミットメッセージです。
これで段ボールは「発送準備完了」の状態となり、あなたのローカルPC(自分の部屋)の中に作業の証拠として保管されます。
厳密に言えば、まだあなたの部屋にある状態なので、この送り状や箱の中身を後から書き直すことは可能です。しかし、チームに送る前にしかやらない特別な作業だと今は覚えておきましょう。
3. push:封をした段ボールを配送業者に引き渡す作業
そして最後の push は、封をして送り状を貼った段ボール箱を、宅配便の集荷で倉庫(GitHub)に送る作業です。
自分のPCに確定させた機能のまとまりの記録を、GitHub上に公開し、他の人や別のPCからアクセスできるようにしています。
commitまでは自分のPCの中で完結する個人的な作業です。pushをして初めて、その倉庫を通じて、誰もがその最新の記録を参照したり、利用したりできる状態になります。
最後に
文字と絵を起こして説明をすると口頭とする時とは別の難しさを感じますね。
理解が1mmでも進むと嬉しいです。


