この記事ではGitにはじめて触れる方に向けて、Gitとは何かについて解説します!Gitは今や多くの開発現場で使われているソースコードのバージョン管理システムです。
Gitの簡単な使い方についてを知りたい。
といった方に向けてこの記事では、Gitの基本的な内容から、GitとGitHubの違い、使い方などを初心者向けに解説しています。
これからGitを始めたい方も、機能をおさらいしたい方も、ぜひこの記事をご覧ください!
Gitとは
まずはGitそのものについてを知っておきましょう。Gitは、ソースコードのバージョンを管理するためのツールです。複数人で開発をする場合は、誰が、いつ、どの部分を、どのように変更したのか、分からなければなりません。
そこでこのGitを使ってバージョンを管理することで、開発をしやすくします。もちろん一人で開発をする場合でも、Gitは便利に使うことが出来ます。
ある機能を加えたり、修正を行った段階ごとにGitで記録をしていくことで、あのときの状態に戻したい!と思った場合も簡単に戻すことが出来ます。
Gitにはローカルリポジトリとリモートリポジトリと呼ばれる2つのリポジトリがあり、このリポジトリに変更した履歴をどんどん追加していきます。
各自のマシンにはローカルリポジトリがあり、ここに変更を追加したあと、一つのサーバーにあるリモートリポジトリを、ローカルリポジトリと同じ状況にします。
そうすることで、複数人で開発をしている場合でも、同じソースコードを扱いながら作業が出来るようになります。
Gitについては、以下の記事でも詳しく解説していますので、合わせて参考にしてください。
GitとGitHubの違い
ここでよく名前を見るGitHubとの違いについても見ていきましょう。Gitは先程も解説したように、分散バージョン管理システムというツールそのものでした。
このGitをベースとした、皆が書いたコードを自由に見たり、修正すべき部分を指摘しあったりすることが出来るWebサービスがGitHubです。
GitHubにはフォークとプルリクエストという2つの特徴的な機能があります。
フォークでは、他人が書いたコードのリモートリポジトリを、自分のリモートリポジトリにコピーすることが出来ます。また、プルリクエストは開発者のローカルリポジトリでの変更を、他の開発者に知らせる機能です。
この2つの機能によって、開発に加わりたいリモートリポジトリがあれば、それをフォークしてローカルリポジトリでコードを編集、さらにフォーク元のリモートリポジトリにプルリクエストを送ってコードを見てもらうという流れが出来上がります。
これによって、オープンソースなコードを開発するスピードがとても早くなります。
Gitの使い方超入門
ここではGitHubの登録から実際の操作方法について説明していきます。
GitHubに登録する
Gitを使うために、まずはブラウザ上で管理できる「GitHub」に登録しましょう!
トップ画面から「GitHubに登録する」ボタンをクリックします。以下の情報を入力して「Create an account」をクリックします。
- Username
- Email address
- Password
プランの選択では「Free」プランが選択されているのを確認して「Finish sign up」をクリックします。登録したメールアドレス宛に確認メールが届きますので「Verify email address」を選択します。登録完了メールが届いたらGitHubへの登録が完了です!
リモートリポジトリを作成する
GitHubを登録したら、リポジトリを作成してみましょう。リポジトリとはソースファイルなどを保存するためのものです。リポジトリを作成することにより、ファイルの追加や更新時の履歴などを記録しておくことが可能です。
複数のメンバーで共有するリポジトリを「リモートリポジトリ」、ローカル環境で編集するリポジトリを「ローカルリポジトリ」と呼びます。リポジトリを作成するには、GitHubにログインして管理画面から「New repository」ボタンをクリックします。
以下のように設定します。
- Repository name:リポジトリ名 ※ここでは「Sample」
- Description(リポジトリの説明):はじめてのGitHub
- Publicを選択 ※Privateは有料会員のみのサービス
- README:READMEファイルを作成する場合のみチェックを入れる
設定したら「Create repository」をクリックします。作成したらリポジトリのURLが表示されますので、メモっておきましょう。
これでリモートリポジトリの作成は完了です。
ローカルリポジトリを作成する
次にローカルで作業する用にローカルリポジトリを作成しましょうMacの場合はターミナル、Windowsの場合はコマンドコマンドを開きます。
※ここではMacでの解説としています。
まずはローカルリポジトリ用のディレクトリを作成して、作成したディレクトリに移動します。ここでは「sample」ディレクトリを作成しています。
$ mkdir sample $ cd sample
次にsampleディレクトリより「git init」コマンドでリポジトリを作成します。
$ git init Initialized empty Git repository in /Users/taka/sample/.git/
これで空のローカルリポジトリを作成できました。
ファイルを追加・登録する
次にファイルを登録します。sampleディレクトリに以下のファイルを作成します。
$ touch sample1.txt $ touch sample2.txt
これで空のファイルができました。作成したファイルに対して「git add」コマンドでファイルをGitのインデックスに追加します。
git addコマンドの書き方
git add ファイル名 # まとめて登録 git add .
Gitに追加する場合は「git add」の引数にファイル名を指定するか、まとめて追加したい場合は「.」を指定します。ここでは「.」を指定してGitに追加しています。
$ git add .
追加されたか確認したい場合は「git status」コマンドを実行します。
$ git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: sample1.txt new file: sample2.txt
このように作成したファイルが追加されていることがわかりますね!次に追加したファイルに対して「git commit」コマンドでGitにコミット(登録)します。
以下のように実行します。
$ git commit -m "Gitにファイル登録"
オプションで「-m」を指定することにより、コミットと同時にコミットに対してのコメントを指定することができます。
リポジトリを更新する
ではローカルリポジトリで登録したファイルをリモートリポジトリに送信してみましょう。送信する前に「git remote」コマンドでリモートリポジトリに追加作業を行います。
「git remote add origin」のあとのURLにはリモートリポジトリ作成時のURLを指定します。
$ git remote add origin https://github.com/ユーザーID/リポジトリ名
続いて更新内容を送信するには「git push」コマンドを使用します。コマンドは以下のように実行します。
$ git push origin master
初回はユーザー名とパスワードを聞かれるので、それぞれ入力します。GitHubのSampleリポジトリを確認すると、ローカルリポジトリで作成したファイルが登録されていることがわかりますね!
ここまでがGitの最も基本的な一連の流れになります。
ファイルを編集して更新する
ここではローカルリポジトリで登録したファイルを編集して、再度リモートリポジトリに登録してみましょう。先ほど作成したファイルに対して以下のように編集を行います。
sample1.txt———————
sample1の更新確認
————————————
sample2.txt———————
sample2の更新確認
————————————
編集したら再度追加・登録を行います。
$ git add . $ git commit -m "ファイルの更新確認"
編集内容を登録したら「git push」で送信します。
$ git push origin master
リモートリポジトリのファイルの内容を確認してみるとファイルの内容が更新されています。
このようにGitを使えば編集・登録も簡単に行えることがわかりましたね! この記事では解説をわかりやすくするためにファイルを一から作って登録しました。
既存のソースファイル一式を登録したい場合は、対象のディレクトリにソースファイル一式をコピーしてaddコマンドからの一連の流れを実施すればOKです。
Gitの機能
それではGitHubのベースになっているGitについて、その機能を見ていきましょう。
クローン
クローンをするとリモートリポジトリをコピーしてローカルリポジトリを作ることが出来ます。誰かが作ってあったり、これから開発する準備として用意されたリモートリポジトリをクローンすることで、実際の開発に取り組むことが出来ます。
自分でリポジトリを作らない場合は、このクローンが最初の作業になることも多いです。詳しくはこちらの記事をご覧ください。
コミット
クローンが出来たら、コードを削除したり、追加したりすると思います。その変更したコードに一区切りがついたら、次はコミットをしましょう。コミットは、ローカルリポジトリに変更したファイルを保存することを言います。
コミットするファイルはインデックスと呼ばれる部分に登録されるのですが、クライアントによってはコードに変更を加えると自動的に登録されます。
コミットにはコミットメッセージと呼ばれる、どこをどのように変更したのかを記録するメッセージが必要になります。基本的には、
変更内容のタイトル (空行) 変更をした理由
といったようにコミットメッセージを追加しておきます。詳しくはこちらの記事をご覧ください。
プッシュ
先程コミットしたファイルは、ローカルリポジトリの中に保存されている状態です。ローカルリポジトリで保存した内容をリモートリポジトリに保存するためにはプッシュをしましょう。
プッシュを行うことで、リモートリポジトリで変更した内容と、ローカルリポジトリの内容を同じものにすることが出来ます。詳しくはこちらの記事をご覧ください。
マージ
ここで一旦、マージとは何かについて確認しましょう。マージとはブランチとともによく使われる操作になります。
ブランチと呼ばれる変更履歴の一連の流れがあり、それぞれ別のブランチの変更履歴を、一つのブランチにまとめてしまうことをマージと言います。マージをすると両方のブランチに残していた変更履歴がどちらも反映されます。
詳しくはこちらの記事をご覧ください。
プル
先程プッシュされて最新の状態になったリポジトリにあるコードを、また誰かに開発してほしい場合、すでにそのローカルリポジトリがあれば、プルをしてもらいましょう。プルをすることでローカルリポジトリとの差分を取得することが出来ます。
ただし、プルでは差分を取得するだけでなくマージをしてしまうので、マージをしたくない場合は後述するフェッチを使いましょう。詳しくはこちらの記事をご覧ください。
フェッチ
先程のプルを使うと差分をマージしてしまうということがわかりました。そこでフェッチを使うと、リモートリポジトリの内容をマージせずに確認だけをすることが出来ます。
確認してマージをしたい場合は、もう一度プルをすることでマージをすることが出来ます。詳しくはこちらの記事をご覧ください。
プログラミングを効率的に学べるサービス
何から学び始めればいいの?
難しそうだし、挫折したらやだな…。
ここまでGitの機能や使い方について解説してきましたが、上記のような悩みを持っている方も多いですよね。
そんな方には、サブスク型のプログラミングスクール「SAMURAI TERAKOYA」がおすすめです。
登録無料で、主に4つのサービスを提供させていただきます。
- 現役エンジニアによる月1度の「マンツーマン指導」
- 平均回答時間30分の「Q&Aサービス」
- 作りながら学べる28種類の「教材」
- 学習を記録&仲間と共有できる「学習ログ」
目的にあった教材を選べば、どなたでも効率よく学習できるほか、Q&Aサービスやマンツーマン指導を活用することで、挫折せずにプログラミングの習得が可能です。
プログラミングを効率的に学びたい人はもちろん、何から始めたらよいのかわからない方は、ぜひ「SAMURAI TERAKOYA」をご利用ください。
詳細はこちらまとめ
この記事ではGitとは何か、GitとGitHubの違い、Gitの基本的な操作についてを解説しました。Gitについてなんとなくは分かって頂けたでしょうか?
特に、GitとGitHubとの違いは初心者が引っかかりやすい部分でもあるので気をつけましょう。またGitの操作についても、それぞれのコマンドについては侍エンジニアの記事で公開しているので、ぜひご覧ください!