Gitの基礎を初心者向けに徹底解説!元ぼっち大学生のフリーランスエンジニアがおすすめの本を紹介しつつ詳しく説明します
プログラミングを学び始めたぼっち大学生のみなさんは、Gitという単語を一度は目にしたことがあるのではないでしょうか?今回の記事では、大学ぼっち時代にプログラミングを学習し、在学中にフリーランスエンジニアとして独立した僕が、プログラミング初心者のぼっち大学生向けに、Gitの基礎知識を可能な限り分かりやすく説明していきます。
たっちゃん
ぼっちユニバーシティの運営者です。
大学ぼっち時代にプログラミングを学び始め、在学中にフリーランスのWebエンジニアとして独立。
本業はWebアプリケーションやWebサイトの受託開発がメインですが、最近はFlutterにハマっています。
趣味はバックパッカー旅行と立ち飲み屋さん巡り。
現在は都内でひとり法人を経営しながら、現役のぼっち大学生のみなさんへお役立ち情報を発信しています。
0. はじめに
ぼっち大学生のみなさんこんにちは!
突然ですが、プログラミングの学習を始めたぼっち大学生のみなさんは、今までに一度はGitというワードを聞いたことがあるのではないでしょうか?
今回は、プログラムを管理するための便利な技術であるGitの基礎知識について、読者のぼっち大学生のみなさんと一緒に学んでいきたいと思います。
Gitについて理解を深めたいというぼっち大学生のみなさんは、ぜひ一度読んでいってください!
1. Gitって何なの!?
1-1. Gitの開発経緯と特徴
Gitは、ぼっち大学生のみなさんや僕が、みんなで一緒に作ったプログラムを管理するための魔法の道具の1つと捉えると、理解が捗るかと思います。
2005年にリーナス・トーバルズ(Linux OSの生みの親)によって開発されたGitは、分散型バージョン管理システムとして設計されました。
1-1-1. Gitが生まれた理由
Gitが生まれた理由は、ズバリ、みんなで一緒に作ったプログラムを簡単に管理するためです。
Gitが開発される前までは、複数人で作成したプログラムを管理することはとても難しいことでした。
しかし、Gitが利用できるようになったおかげで、今では大勢の開発者がみんなで協力してプログラムを作りやすくなったということですね。
1-1-2. 分散型バージョン管理システムの利点
先ほどチラッと言及しましたが、Gitには「分散型バージョン管理システム」という特別な仕組みが使われています。
この「分散型バージョン管理システム」は、ぼっち大学生の皆さんや僕が、それぞれのパソコンで独立してプログラムを作成し、その変更履歴をみんなで共有・統合できる仕組みを提供してくれるシステム。
この仕組みの存在によって、ぼっち大学生のみなさんや僕は、安心してそれぞれのパソコンでプログラムを作成しながら、協力して開発を進めることができるのです。
素敵ですね!
1-2. GitとGitHubのちがい
GitとGitHubは、よく混同されがちなのですが、実は別々のもの。
先述したように、Gitはぼっち大学生のみなさんが、僕と一緒に作ったプログラムを管理する魔法の道具になります。
一方、GitHubは、みなさんや僕が作ったプログラムを、Gitを利用しつつインターネットで共有できる場所に相当します。
1-2-1. Gitの役割
Gitの役割は、ぼっち大学生のみなさんと僕が、一緒に作ったプログラムを簡単に管理すること。
そして、誰が何を変更したか、どのように変わったかなど、プログラムにまつわるすべての変更履歴をちゃんと保存しておいてくれるのが、Gitの素晴らしい点になります。
そのため、もしプログラムに何らかの不具合が見つかったような場合でも、みなさんや僕は不具合が発生する前の状態に、いつでもプログラム(のバージョン)を戻せるのです。
これは安心ですね!
1-2-2. GitHubの役割
GitHubの役割は、ぼっち大学生のみなさんや僕が作ったプログラムを、インターネットで共有できる場所を提供すること。
Github上では、Gitが保存してくれているプログラムの変更履歴を詳細に確認することができます。
そして、作ったプログラムをGitHubに置いて公開することで、ぼっち大学生のみなさんは、自分の書いたプログラムを世界中の人たちと一緒に見たり、それについてアイデアを出し合ったり、不具合を修正するために助け合ったりすることが可能になるということですね!
そのため、GitHubは複数の開発者が協力して素晴らしいプログラムを作るために、とても大切な場所であるというのが、ここでお分かりいただけたのではないでしょうか?
GitとGitHubの違いやそれぞれの役割について理解したところで、続いてはGitの使い方について詳しく学んでいきましょう!
2. Gitを使い始める準備をしよう
2-1. Gitのインストール方法
まずは自分のパソコンにGitをインストールしてみましょう!
なお、Gitインストール方法はWindowsとMacで異なります。
それぞれのOSにおける一般的なGitインストール方法を掲載しておくので、ぼっち大学生のみなさんがGitをインストールするときにお役立てください。
2-1-1. Windowsでのインストール
WindowsでGitをインストールするには、Git for Windowsというインストーラーを使用します。
まずは、こちらのURLからインストーラーをダウンロードしてください。
ダウンロードしたインストーラーを実行し、画面の指示に従ってGitのインストールを進めてください。
Gitのインストールが完了したら、ターミナルなどで git --version を実行してみましょう。
Gitのバージョンが表示されたら、みなさんのWindowsにGitが正しくインストールされています!
2-1-2. Macでのインストール
MacでGitをインストールするには、Homebrewというパッケージ管理ツールを使用するのが一般的です。
もしぼっち大学生のみなさんのパソコンに、Homebrewがまだインストールされていない場合は、まずHomebrewをインストールするようにしてください。
具体的には、次のようなコマンドをターミナルに貼り付けて実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ターミナルで brew -v と打って、Homebrewのバージョンが表示されたら、Homebrewのインストールが完了しています。
続いて、以下のコマンドでGitをインストールしていきましょう。
brew install git
Gitのインストールが完了したら、ターミナルなどで git --version を実行してみましょう。
Gitのバージョンが表示されたら、みなさんのMacにGitが正しくインストールされています!
2-2. Gitの基本設定をしよう
Gitのインストール作業、お疲れ様でした!
ぼっち大学生のみなさんがこれからGitを使う前に、もう少しだけ設定しておくべき内容があるので、一緒に見ていきましょう。
2-2-1. ユーザー名とメールアドレスの設定
まず、Gitの基本設定では、ユーザー名とメールアドレスを設定する必要があります。
これらはプログラムに加えた変更をコミット(後ほど説明します)する時に、誰がプログラムに変更を加えたかを特定するために使用されるのです。
それでは、以下の手順に従ってGitの基本設定を行ってみましょう!
まず、ターミナルなどを開いていただき、ユーザー名を設定するために下記のコマンドを実行します。
その際に、 your_name の部分を、ぼっち大学生のみなさんの好きな名前に置き換えてください。
git config --global user.name "your_name"
メールアドレスを設定するには、次のコマンドを実行します。
your_email@example.com の部分を、ぼっち大学生のみなさんのメールアドレスに置き換えてください。
git config --global user.email "your_email@example.com"
ここで、上記の設定が正しく行われたか確認するために、以下のコマンドを実行します。
git config --list
このコマンドによって表示されるリストに、設定したぼっち大学生のみなさんのユーザー名とメールアドレスが含まれていれば、正しく設定されていることになります。
お疲れ様でした!
以上がGitの基本設定です。
他にも、ぼっち大学生のみなさんの好みや、みなさんが将来所属する開発チームのルールに応じて、エディタの設定や改行コードの扱い方などを設定することができます。
しかし、これらは最初の設定として必須ではありまんし、初心者向けの内容には含まれないかと思いましたので、今回は割愛させていただきました。
この章の内容を読んで基本設定が完了したら、次は実際にGitを使って、プログラムのバージョン管理について学んでいきましょう。
3. Gitの基本操作を知ろう
3-1. リポジトリの作成と管理
Gitにおけるリポジトリというのは、ぼっち大学生のみなさんや僕が作ったプログラムを保存する箱のようなものに相当します。
このリポジトリは新しく作ったり、みなさんが僕のリポジトリをコピーしたりすることもできちゃいます。
3-1-1. リポジトリの作成
ぼっち大学生のみなさんが新しいリポジトリを作るには、ターミナルで git init という魔法のコマンドを使いましょう。
cd bocchi-project
git init
これで、bocchi-project の中にあるプログラムが入った、新しいリポジトリが作成されます。
3-1-2. リポジトリのクローン
続いて、リポジトリをパソコンにコピーするには、 git clone というコマンドを使います。
ぼっち大学生のみなさんが作成した bocchi-project というリポジトリが、Githubに公開されていると仮定しましょう。
その場合、僕は下記のコマンドを実行することによって、みなさんのリポジトリを僕のパソコンにコピーすることができるのです。
git clone https://github.com/みなさんのGithubアカウント/bocchi-project
これで、晴れてみなさんの bocchi-project リポジトリに入っているプログラムを、僕はみなさんと一緒に開発できるようになったというワケです!
3-2. 変更の記録(コミット)と共有(プッシュ)
ぼっち大学生のみなさんや僕が、bocchi-project のプログラムに変更を加えたら、それを記録してお互いに知らせる必要がありそうですよね?
そんな時に使うのが、ステージングとコミット、プッシュの3つになります。
3-2-1. ステージングとコミット
まずプログラムに加えた変更を記録するには、 git add というコマンドを使って、プログラムの変更内容をステージングをしましょう。
git add .
これによって、プログラムに加えた変更をまとめておくことができます。
次に、 git commit というコマンドで、プログラムに加えた変更の記録を保存しましょう。
git commit -m "ボタンを赤色から青色に変更しました"
ここでは、僕がぼっち大学生のみなさんが設置した赤色のボタンを、青色に変更した場合を想定します。
git commit というコマンドには、 -m というオプションを利用することで、上記のように任意のテキストを付与することができます。
これによって、プログラムに変更を加えた人が、何をしたかが他の人にも分かりやすくなりましたね。
3-2-2. プッシュで変更を共有
先ほど僕が bocchi-project のプログラムに加えた変更を、ぼっち大学生のみなさんにも共有したい場合は、 git push というコマンドを使います。
git push origin master // originとmasterについては後ほど説明します
これで、僕が加えたボタンの色に関する変更が、 bocchi-project のプログラムが入ったリポジトリに送られて、ぼっち大学生のみなさんが僕の変更を確認することが可能となります。
お疲れ様でした!
ここまでが、Gitを使い始める準備と、その基本操作に関する解説となります。
実際のソフトウェア開発では、コミット時にコード整形やテストのためのツールが動作したりと、今回紹介したものと比べて、さらに複雑なプロセスが存在したりします。
ただ、今回は初心者向けの解説記事ですので、どのようなプロジェクトにおいても必ず使用されるコマンドを中心に紹介させていただきました。
4. Gitにおけるブランチとマージとは?
この章では、Gitを語るうえでは外せない、ブランチとマージという仕組みについて、できるだけ分かりやすく解説させていただきます。
4-1. ブランチの作成と切り替え
「ブランチ」というのは、直訳すると「枝」や「分岐」、「岐路」という単語が該当します。
ぼっち大学生のみなさんは、Gitにおけるブランチというものは、同じリポジトリに入ったプログラムに関して、それぞれ違う作業をするための道のようなものというイメージを持ってみると、その概念を理解しやすくなるはずです。
4-1-1. 新しいブランチの作成
新しいブランチを作るには、 git branch というコマンドを使うことになります。
下記は、ぼっち大学生のみなさんが、 bocchi-project のプログラムに、会員機能のようなものを実装すべく、そのためのブランチを用意する場合の例になります。
cd bocchi-project
git branch add_authentication
git branch ブランチ名(今回はadd_authentication) というコマンドを実行することによって、 add_authentication という道が新しく作成され、みなさんはこのブランチで作業をすることができるようになりました。
4-1-2. ブランチの切り替え
先ほどぼっち大学生のみなさんは、 add_authentication というブランチを作成しました。
しかし、これだけでは新しいブランチで作業をすることができません。
みなさんが新しいブランチに移動するには、 git checkout というコマンドを使う必要があるのです。
git checkout add_authentication
このように、git branch ブランチ名(今回はadd_authentication) というコマンドを実行することによって、みなさんはようやく先ほど作成した新しいブランチに移動することができます。
なお、ブランチ作成時に -b オプションを付けることによって、ブランチの新規作成と同時に、作成した新しいブランチに移動する方法もあったりしますが、今回は割愛します。
4-2. マージ
お次は、ぼっち大学生のみなさんや僕が作ったプログラムを、1つに合体するための魔法である「マージ」について、分かりやすく説明していきます。
4-2-1. マージの方法
マージをするためには、 git merge というコマンドを使用します。
先ほどのブランチの説明パートで、みなさんは bocchi-project に会員機能を実装すべく、 add_authentication というブランチを新しく作成しました。
そして、みなさんはそのブランチで、会員機能を動作させる変更を、 bocchi-project のプログラムに加え終わったとしましょう。
その一方で、僕はみなさんが作成した add_authentication のブランチではなく、 最初から存在していた(masterやmainという名前あることが多い)ブランチにいます。
ここで、僕がみなさんが実装した会員機能を、元々のブランチにあったプログラムに合体させたい場合、
git merge add_authentication
というコマンド実行することによって、ぼっち大学生のみなさんが加えた変更を、僕のいるブランチのプログラムに合体することができるのです!
4-2-2. マージの注意点
しかし、みなさんが作った add_authentication ブランチが、僕のいるブランチにマージされたところで、ある問題が発生しました…。
どうやら、みなさんが「ログインする」ボタンを設置する変更を加えた部分に、僕がレイアウトを新しいものに置き換える変更を加えてしまっていたようです。
これではぼっち大学生のみなさんと僕の変更がコンフリクトして(ぶつかって)しまっているので、ブランチをマージすることができません!
一体どうしたら良いのでしょうか…この問題の解決方法を次の章で説明していきます。
5. Gitを使ってトラブルが起きた場合の対処法
先ほどのマージの章で発生したコンフリクトなど、Gitを使用する際にはトラブルが発生することがたまにあります。
この章では、Gitにまつわる代表的なトラブルの解決方法について、分かりやすく説明していきたいと思います。
5-1. コンフリクトの解決方法
まずはGitの「コンフリクト」について。
コンフリクトとは、ぼっち大学生のみなさんや僕が加えた変更が、文字通りぶつかってしまったときに起こるトラブルです。
でも、ご安心ください!
コンフリクトには、ちゃんと解決方法が存在します。
5-1-1. コンフリクトの原因
そもそも、今回のようなコンフリクトが発生する原因は、ぼっち大学生のみなさんと僕が、プログラムの同じ部分(ファイル)に変更を加えてしまったことに尽きます。
そのため、みなさんがプログラムに変更を加えている部分(ファイル)に、僕が変更を加えないように気を付けさえすれば、コンフリクトを未然に防ぐことが可能になるのです。
5-1-2. コンフリクトの解消手順
では、実際にコンフリクトが起きてしまったら、どうやって解決すれば良いのでしょうか?
解決方法は至ってシンプルで、ぼっち大学生のみなさんと僕で、どちらの変更を使うか相談して決めてから、コンフリクトが発生している部分(ファイル)を修正するだけです。
先ほどの例であれば、僕は今回、みなさんが実装してくれた認証機能に関する変更を優先したいので、僕が当該ファイルに加えたレイアウトに関する変更は一旦元に戻すことにします。
それから、 git add と git commit のコマンドを使用して、コンフリクトを解消した変更として記録すればOKです!
5-2. その他のGitにまつわるトラブルと解決策
コンフリクトの修正方法はなんとなくイメージできたでしょうか?
最後に、Gitでありがちなトラブルとその解決方法をいくつか紹介して、この章を終わりたいと思います。
5-2-1. コミットメッセージの修正
コミットのパートで説明したように、コミットにはテキストでメッセージを付け加えることができます。
しかし、そのメッセージ内容を間違ってしまったような場合、どのように修正すればいいのでしょうか?
コミットメッセージを直すには、 git commit --amend というコマンドを使えばOKです。
ぼっち大学生のみなさんが、先ほどの bocchi-project でコミットした際に、コミットメッセージを間違えてしまったと仮定すると、
git commit -m "間違ったコミットメッセージ" // メッセージを間違えてコミットしてしまった!
git commit --ammend "正しいコミットメッセージ" // 間違えたコミットメッセージが消えて、正しいコミットメッセージに修正される!
といった手順で、コミットメッセージだけを修正することが可能です。
5-2-2. 間違ったブランチへのコミットの対処法
お次は、ぼっち大学生のみなさんが、間違ったブランチに変更をコミットしてしまった場合の解決方法について。
5-2-2-1. 間違ったブランチから正しいブランチへの移動
落ち着いて正しいブランチにコミットを移動していきましょう。
まず、ターミナルなどで間違ってコミットしたブランチに移動してください。
次に、以下のGitコマンド(呪文)を実行して、コミットハッシュをコピーします。
git log -n 1
表示されたコミットハッシュ(例: bocchi1234 )をメモしておいてください。
次に、本来コミットを実行するはずだった、正しいブランチに切り替えます。
git checkout correct_branch
正しいブランチに切り替えたら、コピーしたコミットハッシュを使って、コミットを移動します。
git cherry-pick abc123
これで、正しいブランチに間違ったブランチで実行してしまったコミットが移動されます!
5-2-2-2. 間違ったブランチのコミットを消す
次に、ぼっち大学生のみなさんが、間違ったブランチにコミットしてしまった場合に、そのコミットを消す方法を見ていきましょう。
まずは、間違ってコミットしたブランチに戻ります。
git checkout wrong_branch
そして、以下のコマンドを実行して、間違ったブランチの直近のコミットを取り消します。
git reset HEAD~1 --hard
これで、間違ったブランチのコミットが取り消されます。
ただし、この操作は取り消しの対象となるコミットを完全に削除するため、注意が必要です。
間違ったブランチのコミットを取り消す前に、コミット内容が正しいブランチに正確に移動されていることを確認してください。
6. プログラミング初心者のぼっち大学生におすすめしたいGit本を紹介します
この章では、プログラミングを学び始めたところで、Gitの学習を本格的に始めようというぼっち大学生のみなさんに、僕が現役エンジニア目線でおすすめしたい書籍を何冊か紹介していきます。
6-1. いちばんやさしいGit&GitHubの教本 第2版 人気講師が教えるバージョン管理&共有入門
© インプレス
まずは、Gitに限らず様々な分野において、初心者向けの分かりやすい解説書が揃うことで有名な「いちばんやさしい教本シリーズ」から、「いちばんやさしいGit&GitHubの教本 第2版 人気講師が教えるバージョン管理&共有入門」を紹介させていただきます。
その分かりやすさといったら、僕が何か新しいジャンルについて学ぼうと思ったら、まず初めに「いちばんやさしい教本シリーズ」の書籍がカバーしていないかどうか調べてしまうほど。
そして、この「いちばんやさしいGit&GitHubの教本 第2版 人気講師が教えるバージョン管理&共有入門」も例外ではなく、前半は基本的なGitコマンドの操作を中心に扱い、後半ではGithubを活用した実践的なワークフローについて説明されています。
ちょうど今回の記事で僕が説明した内容をなんとなく理解した状態で、この本を読むようにすると、後半の実践的な内容がスムーズに頭に入ってくるはず。
また、2022年に改訂されたばかりということもあり、後輩のエンジニアにGitやGithubに関連したおすすめの書籍を聞かれた場合、僕が必ず彼らに紹介するのもこちらの1冊だったりします。
技術本としても手に取りやすい価格だと思いますので、この機会にぼっち大学生のみなさんもぜひチェックしてみてはいかがでしょうか?
6-2. はじめてでもできる GitとGitHubの教科書
「はじめてでもできる GitとGitHubの教科書」は、UdemyやYouTubeでの初心者に優しい解説でお馴染みの、たにぐちまことさんが執筆された本になります。
やはり普段から良質な解説動画を大量に配信されている方なだけあって、この「はじめてでもできる GitとGitHubの教科書」は、初心者から中級者まで幅広い学習者を対象としつつ、内容は非常に分かりやすいものとなっている印象があります。
この書籍に関して、僕が個人的にぼっち大学生のみなさんに推したいポイントは、SourceTreeを使用した例が豊富である点。
少し補足すると、SourceTreeとはGitによるバージョン管理を視覚的に操作できるクライアントアプリのこと。
GUIで簡単にブランチやコミットを管理し、ターミナルなどからGitのコマンドを入力する手間を省いてくれるツールで、僕が過去に参画した開発チームでもよく見かけたツールです。
そのため、これからエンジニアとして働く予定であったり、Gitの基礎的な知識はすでに学習済みであるというぼっち大学生のみなさんにも、この「はじめてでもできる GitとGitHubの教科書」はおすすめの書籍となっております。
7. まとめ
今回は、プログラミング初心者のぼっち大学生向けに、Gitの基礎知識を解説させていただきました。
今回紹介したGitは、エンジニアとして働く場合は言うまでもありませんが、ぼっち大学生のみなさんが趣味でプログラムを書くような場合でも、ほぼ間違いなく必要になるツールです。
プログラミングを学ぶぼっち大学生のみなさんは、ぜひこの記事の内容を参考にしていただき、Gitの知識をしっかりと身につけていって欲しいと思います。
最後に、これからGitについて本格的に学んでみようと考えるぼっち大学生のみなさんに、おすすめのプログラミングスクールを紹介させていただきます。
ぼっち大学生のみなさんは、サブスク型プログラミングスクールのSAMURAI TERAKOYA(侍テラコヤ)であれば、飲み会1回分ほどの費用で、Gitを効率的かつ確実に学ぶことが可能です!
SAMURAI TERAKOYA(侍テラコヤ)の詳細については、こちらの記事で詳しく解説していますが、
- 40種類以上に及ぶ学び放題の教材
- 平均回答スピード30分以内のQ&A掲示板
- 月1回〜の現役エンジニアとのオンラインレッスン
- プログラミング学習を継続できる学習ログ
を、月額2,980円〜という破格の料金で利用することができます。
独学でGitの知識を習得することは不可能ではありませんが、実際に業務でGitを毎日のように使用しているエンジニアのメンターに、Gitについて直接質問ができる環境で学んだほうが、ぼっち大学生のみなさんのGitを習得するスピードは圧倒的に速くなります。
プログラミングスクールで学ぶことも視野に入れていたが、その費用面がネックとなり、なかなかGitを含めたプログラミングの学習に本格的に手を付けられなかったというぼっち大学生のみなさんは、ぜひ一度このSAMURAI TERAKOYA(侍テラコヤ)に無料で相談してみてはいかがでしょうか?
8. プログラミング初心者向けのGitチートシートをおまけで載せておきます
おまけとして、この記事で出現したGitコマンドと、その機能を簡単な表にまとめておきました!
ぼっち大学生のみなさんが、これから実際にGitを利用する際にぜひ役立てくださいね。
| git init | 箱(リポジトリ)を作成する |
| git clone | 他の人が作った箱を自分のところに持ってくる |
| git add | 変更したファイルを箱に入れる準備をする |
| git commit | 箱に変更を記録する |
| git status | 箱の中身を見る(変更があるかどうか確認) |
| git diff | 変更した部分を見る |
| git log | 箱の変更履歴を見る |
| git remote | 遠くの箱(他の人のリポジトリ)と繋がる |
| git push | 箱の中身を遠くの箱に送る(共有する) |
| git pull | 遠くの箱の変更を自分の箱に取り入れる |
| git branch | 道を分けたり(ブランチ作成)、今どの道(ブランチ確認)を見ているか確認する |
| git checkout | 道を切り替える(ブランチ間の移動) |
| git merge | 道同士を合体させる(ブランチを統合する) |