
・「バージョン管理ができる」って、つまりどういうこと?
こう思う方が多いのではないでしょうか。
私自身、2020年4月からAIコンサルタントとして未経験転職をした際、「git」という言葉を初めて聞きました。
また、周りの方から「バージョン管理ができるツールだよ」と言われましたが、前職でエクセルで資料を作ってメールで送付したり、SharePointにデータをアップロードしかしてこなかった身としては、

とすごく思っていました。
本記事をお読み頂くと下記が分かります。
ポイント
・gitでできることのイメージがつく
・gitの大枠の仕組みがわかる
・gitの学習方法がわかる
結局、gitの全体像を掴むには「言葉での説明」よりも「実際の画面を見る」方が100倍わかりやすいので、
実際に打つコマンドや画面を多く紹介しています。
本記事の目次は以下の通りです。
①gitでできること
(1)gitの定義
gitとは、「誰が/いつ/どのような変更を行ったのか」わかるようにする仕組みのことです。
・・・初めてgitを学んだときは、この説明の意味が全く分かりませんでした。
わかってからこの説明を読むと「まったくもって正しい」のですが、初心者の自分は「イメージ」をつけることができませんでした。
(2)gitがない世界で困ること
具体例を出そうと思います。
全国で考えると、gitを使っている人は少ないと思います。
前職も、gitなんて聞いたこともありませんでした。
そんな職場で起こりがちなのが、「イントラサイト」や「どこかにアップロードしたエクセルファイル」を複数人で同時編集すること。
結果、こんなフォルダになっている経験はないでしょうか。

私はこんな場面に何度も出くわしました。
(3)gitがあるとできること
gitの仕組みを利用したwebサービスに「github」があります。
githubを使うと、下記のように「データで追加した部分の色が変わる」ため、どこが更新されたのか、一目で理解することができます。
(誰がいつ更新したかも他の画面で確認することができます)
この例は後から出てきますが、2020年10月7日の「山田さんのタスクの納期は10月30日」と書いた議事録に、
後から「2020年10月8日追記 納期変更、12月31日へ。」という文言を追記し、githubに連携した状態です。
追加した部分が緑色になっていると思います。
そう、「誰が/いつ/どのような変更を行ったのか」わかるようにする仕組みとはまさにこのことなのです。
gitを使えば(2)でお見せしたような「どれが最新なのか/どこを直したのか」で悩むことがなくなります。
※gitの良さは他にもあるのですが、今回は王道のメリットを紹介します。
とはいえ、私はgitを勉強し始めた時にこう思いました。

この疑問を解消するには、実際にgitの仕組みの全体像を把握し、その後で実際のコマンドやgithubの画面を見た方が分かりやすいと思うので、次にgitの仕組みについて解説していきます。
②gitの仕組み
結論です。git全体は下記の様な仕組みになっています。
1.手元で編集
まず、手元でファイルを修正します(プログラミングコードが一般的です)。
※この時、作業場所はデスクトップにフォルダを1つ作って、そこに実際に保存する、で問題ありません。
2.add
次に、gitを使えるようにツールをインストールしておき、そのツール上でコマンド「git add .」と打ちます。
※今回はgit bashというツールを使っているので、以下はgit bashを起動した図です。
※必ずしもgit専用のツールをダウンロードする必要はないですが、わかりやすく説明するためこのように説明しています。
以下のキャプチャのカラフルな1行目部分は自動で表示されるので気にしないで大丈夫です。
このように「add」できたら、目には見えないですが、あなたの修正した資料が「ステージングエリア」に記録されます。
※ステージングエリアとは、ローカルリポジトリに履歴を記録する前の、一旦の仮置き部屋のように捉えていただいて大丈夫です。
3.commit
同様に、git bashで「git commit」を続けて行うと、目には見えませんがローカルリポジトリへファイルの修正が記録されます。
4.push
最後に「git push」すれば、githubといったシステムに連携できて、「誰でもあなたが加えた変更の箇所・修正タイミング」がわかるというわけです。
③gitの一連の流れ(実際の画面を用いて解説)
②までで全体像を説明しましたが、gitは「実際の画面を見ないとわからない」と私は思いますので、一連の流れを実際の画面とともに解説していきます。
初心者の方は「これどういう意味?」と思うコマンドばかりだと思いますが、今回は全体像をおさえることが目的なので、一旦最後までお読みください。
■前提
・自分のPCのDocuments/フォルダに「git_practice」というフォルダを作る
・上記のフォルダ内に「minutes.txt」という議事録を保存していたとする。(下の赤枠です)
※実際に議事録をメモ帳に取ることはないと思うのですが、ご容赦ください。
また、実際のminutes.txtの中身はこんな内容です。
0.準備する
git bashを開き、下記コマンドを打っていきます。
※git bashはEnterを押すと「$」が先頭についている状態なので、実際に自分で打ち込むのは$以降の文字です。
command
#自分の作業場所を、minutes.txtを格納しているフォルダへ移動させる
$ cd /Documents/git_practice
#gitの初期設定をする
$ git init
#リモートリポジトリ(github)を登録しておく
$ git remote add origin https://github.com/Hawaii-creator/practice-git.git
2.addする
続けて、下記コマンドを打ちます。
command
#addの後ろの「.」を忘れずに。
$ git add .
この1行だけで、ステージングエリアという、ローカルリポジトリに行く前の仮置きのような場所に移動させます。
3.commitする
続けて、ローカルリポジトリに移動させるため、下記コマンドを打ちます。
command
#-mの後ろにつけるコメントは何でも良い
$ git commit -m'納期修正'
ここまでが自分のPC内で起こっていることです。なので、addやcommitをしても何が起きているのかわかりづらいと思います。
次のpushで、リモートリポジトリに変更履歴をアップしていきましょう!
4.pushする
最後に、下記コマンドを打ちます。
command
#-uやorigin masterは今の時点では気にしなくてOK
$ git push -u origin master
リモートリポジトリ(github)を確認する
githubで作成したリポジトリに移動すると、下記のように今pushしたファイルが上がっている。
これだけだと「変更履歴を管理する」意味が分かりづらいと思うので、次にminutes.txtを修正して再度githubにpushしていきます。
minutes.txtの再修正
会議の翌日、山田さんのタスクが年内いっぱいに変わったと上司から連絡を受けたので、下記のようにコメントを議事録に追記。
先ほどと同様、add,commit,pushをする
command
$ git add .
$ git commit -m'納期の再修正についてコメント追加'
$ git push -u origin master
再度githubを確認
再度確認すると、このように、追加した分が緑部分になっていることがわかります!
これってかなり便利ですよね。前回の内容と今回の内容をgitが比較して、差分をわかりやすく色づけてくれているのです。
このようにgithubで変更履歴の管理を行うことで、「いつ/誰が/どんな変更をしたのか」管理することができます。
④gitの効果的な学習方法
今回はまずはイメージを付けるために全体像を解説しました。
もしもgitに興味がある・使ってみたいと思っている方は、gitを勉強する際にはudemy講座を使うのが一番いいと感じます。
下記2つ、私の本当にお勧めです!
実際、私はこの2つだけといっても過言ではなくgitの基礎スキルを習得しました。
■Git:はじめてのGitとGitHub
ずっとなのかはわからないですが、無料の講座です(2021年10月30日現在)。
この次にお勧めする講座も本講座の内容を含んでいるのですが、本講座の方が「最低限の内容」であるため気軽に受講しやすいです。
(時間も約1時間ほど)
なにより無料なので、迷ったら「はじめの一歩」としてこの講座をお勧めします!
こちらをクリックしていただくとudemyページに遷移します。
■Git: もう怖くないGit!チーム開発で必要なGitを完全マスター
大変お勧めです。私はこの講座のおかげでgitの基本を習得し、実際に新卒の後輩にもgitの使い方を教えることができました。
※こちらをクリック頂くとudemyページに遷移します。
基本的にはこの2つで問題ないと思います。
⑤まとめ
いかがでしたでしょうか。gitは実際の画面を見ないと本当にイメージがつきづらいと思います。
本記事では細かな説明はせず、「大枠の全体像」をお見せしました。
今後、gitでよく使うコマンドについても記事で取り上げたいと思います。
最後までお読みいただきありがとうございました。