Gitのコマンドを使いこなそう!頻繁に使用するコマンドを実例を用いて紹介

Gitのコマンドを使いこなそう!頻繁に使用するコマンドを実例を用いて紹介のアイキャッチイメージ

Gitとは?


Gitとは、バージョン管理システムの1つです。

アプリケーションのソースコードの管理や、システムの共同開発の際に使用するツールとして様々な場面で使用されています。

GitとGithubの違い

Gitはバージョン管理システムそのものを指し、GithubはGitを用いたウェブサービスの名称です。

Githubでは、クラウド上にリモートリポジトリが作成され、これに対してコードのレビューを行う機能(プルリクエスト)があります。

リポジトリ

リポジトリとは、ディレクトリやファイルに関する情報を保管している場所です。

Gitには、ローカルリポジトリとリモートリポジトリの2つがあります。

ローカルリポジトリ

ローカルリポジトリとは、ユーザのPC内にあるリポジトリです。

作業は基本的にローカルリポジトリで実施します。

リモートリポジトリ

リモートリポジトリとは、サーバーやクラウド上に存在するリポジトリです。

作業中はローカルリポジトリで作業した内容をリモートリポジトリに反映する手順があります。

リモートリポジトリと同期することで、万が一ローカルリポジトリのデータが消えてしまった場合でもデータを復元することができます。

Gitの使用方法


Gitはコマンドラインインターフェース(CLI)とグラフィカルユーザインターフェース(GUI)の双方を利用することができます。

一般的にはCLIを用いて操作する場合が多いですが、初心者や操作に不安のある方はGUIで慣れていくと良いでしょう。

ここからは、頻繁に使用するコマンドを実例を用いて紹介します。

アプリケーションをgitの監視下に置く

アプリケーションをgitの監視下に置く場合、その指示を出す必要があります。

コマンドはgit initです。

正常にgitの監視下に置く準備ができているかを確認します。

対象のディレクトリで、コマンドls -laを実行します。

上記のように、隠しディレクトリ.gitが生成されていれば成功です。

リモートリポジトリ上のファイルを自分のPCへコピーする

Gitでは、リモートリポジトリ上にあるファイルを自分のPCへコピーすることができます。

コマンドはgit cloneです。

ブランチを作成する

Gitを用いて作業する際は、ブランチを作成して作業します。

ブランチを作成することで、大元のファイルがコピーされ、コピーした側で作業をすることができます。
ブランチを作成するコマンドはgit branch ブランチ名です。

例えば、ブランチ名branch_Aのブランチを作成する場合、以下のようにコマンドを使用します。

現在のブランチを確認する

作業中、現在作業しているブランチ(カレントブランチ)は都度確認するようにしましょう。

コマンドはgit branchです。

アスタリスクが付いているブランチがカレントブランチです。

ブランチを切り替える

作業中にブランチを切り替える場合があります。その際は、コマンドgit checkout ブランチ名を使用します。

なお、ブランチを切り替える際は未コミットの情報をコミットしておくようにしましょう。

例えば、マスターブランチからbranch_Aに切り替える場合のコマンドは次の通りです。

リポジトリの状態を確認する

ブランチを作成し、変更登録する際には事前にリポジトリの状態を確認しましょう。

コマンドはgit statusです。

本コマンドを実行すると、差分が出ているファイルを確認することができます。
上記の例では、README.mdで差分が発生していることを示しています。

差分をインデックスに追加する

編集して発生した差分をリモートリポジトリに反映させるためには、まずインデックスに追加する必要があります。

コマンドはgit addです。

インデックスとは?

インデックスとは、ワークツリー(作業しているファイル)とリポジトリの間に存在する差分を登録するための準備が行われる場所です。

インデックスはステージとも呼ばれます。

差分を登録する

差分をリポジトリに登録することを「コミット」と呼びます。

コミットすることにより、リモートリポジトリへ反映する準備が整います。

コマンドはgit commit [オプション] [ファイル名]です。

-mオプションを付けることで、コミットにメモを残すことができます。

このメモは、「このコミットはどのようなコミットであるか」を書き残しておくために使用します。

コミットすると、コミットIDが付与されます。コミットを取り消す場合などには、このコミットIDを使用します。

コミットの履歴を確認する

Gitでは、コミットの履歴やコミットに付与されたIDを確認することができます。

コマンドはgit logです。

この出力の21e11994d84aa5b4b533b9bc49cf003250c266c9がコミットIDです。

過去のコミットを取り消す

誤ってコミットしてしまった場合など、過去のコミットを取り消すことができます。

コマンドはgit revert コミットIDです。

revertを行うと、該当のコミットを取り消すコミットが生成されます。

差分をリモートリポジトリへ反映させる

リポジトリに登録された差分をリモートリポジトリへ反映させることを「プッシュ」と呼びます。

プッシュすることで、初めてリモートリポジトリにコードが反映されます。

コマンドはgit pushです。

originとは?

originとは、リモートリポジトリのことです。

Gitを使用していく上で、頻繁に登場しますので是非覚えておきましょう。

最初のコミットをプッシュする場合

初回の場合、リモートリポジトリの情報を予め登録しておく必要があります。

手順は以下の通りです。

①:ブラウザのGithub上でリポジトリを作成する

②:以下のコマンドをコピーする

③:②でコピーしたコマンドをCLIで実行する

初回の場合、ここまで実行することでプッシュできるようになります。

差分を統合する

作成した差分は別のブランチのデータと統合することができ、この作業を「マージ」と呼びます。

コマンドはgit merge ブランチ名です。

例えば、マスターブランチの内容をマージする場合は以下のように使用します。

リモートリポジトリのマスターブランチ内容をローカルリポジトリに反映させる

リモートリポジトリのマスターブランチの内容とローカルリポジトリの内容に差分がある際、リモートリポジトリの内容をローカルリポジトリに反映させることができます。

この手順を「プル」と呼びます。

コマンドは git pullです。

以上が基本的なよく使用するコマンドです。

発展的なコマンド

Gitのコマンドには頻繁には使用しない発展的なものもあります。

今回は知っておくと役に立つコマンドを3点紹介しますので、ぜひ参考にしてみてください。

履歴を修正する

リセットすることで、誤った記述をコミットしてしまった場合など、コミット履歴を修正することができます。

コマンドはgit reset <コミットID> <戻したい場所>です。

例えば、コミット履歴が以下の通りにあるとします。

これを、update Readmeの前に戻したい場合は次のようにコマンドを使用します。

このように実行することで、履歴は次のようになります。

update Readmeが無かったことになりました。

「どこまで戻すか」については、次のオプションがあります。

対象のコミットそのもののみを削除したい場合

indexまでを削除したい場合

指定は不要

index、ワーキングツリーまで削除したい場合

ファイルの内容を変更したくない場合は--hardを使用しないようにしましょう。

コミットを他のブランチに移動する

cherry-pickを使用すると、指定したコミットを他のブランチに移動させることができます。

例えば、branch_Bで作成したコミット・second_commitをbranch_Aへ移動させるとします。

ブランチをbranch_Aに切り替える

ブランチを移動させたいブランチへ切り替えます。

コマンドgit cherry-pick コミットIDを実行します。

git logでブランチが切り替わっていることを確認します。

以上の操作で、second_commitの内容がbranch_Bからbranch_Aへ移動しました。

コミットせずに一時的に退避させる

stashを用いることで、作成した差分をどうしてもコミットしたくない場合、一時的に退避させることができます。

現在、README.mdで差分が発生しています。

これをコミットしたくないため、一時的に退避させます。

コマンドはgit stashです。

退避リストを見る

退避リストはコマンドgit stash listで確認できます。

stashした変更を復元する

stashしたものを復元するためには、コマンドgit stash apply 退避リストの順番を使用します。

今回の例では、0番目のstashを復元します。

戻した内容は退避リストに残ります。

変更を復元しつつ、退避リストからも削除したい場合はコマンドgit stash pop 退避リストの順番を使用します。

例えば、1番目の変更を復元する場合は以下のように使用します。

退避リストを削除する

退避リストを削除する場合、コマンドgit stash drop 退避リストの順番を使用します。
順番を指定しない場合、最新の変更が削除されます。

全てを一括で削除する場合は、コマンドgit stash clearを使用します。

Gitはコマンドを使いこなすことで作業がラクになる


今回は、Gitのコマンドについて、頻繁に使用するコマンドと発展的なコマンド3点を紹介しました。

Gitでは、コマンドでしか実行できない操作が多くあります。

それらも含めて、効率良く開発を進めていくためにはコマンド操作がとても便利です。

普段、GUIを使用してGit操作をされており、慣れてきた方は是非コマンドでの操作に挑戦してみては如何でしょうか。

画面を切り替える必要がなくなるため、効率良く作業を進めることができます。

是非、Gitのコマンドを使いこなして効率良いアプリケーション開発を行っていきましょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。