よく使うGitコマンド19選!使い方を初心者向けにわかりやすく解説

Gitコマンドってどうやって使うの?
Gitコマンドの中でも良く使うものが知りたい

Gitは今やエンジニアだけでなく、WebデザイナーやWebライターの方にも使われるツールとなりました。しかしGitを使いこなすためのコマンドについて、良く知らない方もまだまだ多いですよね。

そのような方のために、今回は良く使うGitコマンドを19個ピックアップしてご紹介します。この記事を読めば、仕事で急にGitを使うことになっても困らなくなりますよ。エンジニア未経験の方でも分かりやすい内容となっていますので、ぜひご一読ください。

目次

Gitのインストールと初期設定

Gitのインストールと初期設定

画像:Gitの操作

そもそも「Git」とは、ソースコードなどのファイルに対する変更内容を管理するためのツールです。変更内容をチーム内で共有できたり、簡単に変更前のバージョンに戻せたりといったメリットがあり、多くの企業で使われています。

Gitのインストール方法は、使用しているOS(Windows/Linux/Mac)によって異なります。またインストール後の初期設定として、ユーザー名とメールアドレスの設定が必要です。

各OSへのインストールや初期設定の方法については以下の記事で丁寧に解説しているので、参考にしてくださいね。

Gitをインストールしてみよう!Windows/Macどちらも丁寧に解説
更新日:2024年3月21日

よく使うGitコマンド一覧

よく使うGitコマンド

画像:よく使用するGitコマンドを覚えることで多くのメリットが得られる

Git使用経験の豊富なエンジニア目線で、よく使うGitコマンドを19個ピックアップしました。まずはコマンド名と用途を一覧表にしましたので、参考にしてください。

コマンド名用途
git initリポジトリを新規作成
git cloneリポジトリをコピー
git gcリポジトリを最適化
git pullリモートリポジトリの変更点をローカルリポジトリにマージ
git pushローカルリポジトリの変更点をリモートリポジトリにマージ
git addコミット対象のファイルを登録
git commit変更されたファイルをコミット(ローカルリポジトリに変更内容を入れ込む)
git reset直前のコミットを取消
git revert特定のコミットを取消
git tagコミットにタグを付ける
git logコミット履歴を表示
git status作業ツリー内の差分ファイルを表示
git diffファイル内の差分箇所を表示
git mvファイルを移動/ファイル名を変更
git stash作業ツリーの状態を一時的に保存
git branchブランチの作成/一覧表示
git checkout処理対象ブランチの切り替え
git merge別のブランチから変更点をマージ
git rebase派生元ブランチに変更点をマージ

それぞれの詳細については、次章以降で解説していきますね。

リポジトリ作成などに使うコマンド

リポジトリ作成などに使うコマンド

画像:リポジトリのイメージ

「リポジトリ」というのは、Gitにより管理するファイルの格納場所です。サーバー上にありチームで共有するリモートリポジトリ(マスターリポジトリ)と、自分のパソコン上で管理するローカルリポジトリの2種類があります。

この章では、リポジトリの取り扱いに関するGitコマンドを5つご紹介します。

git init 「リポジトリを新規作成」

Gitを利用するためには、リポジトリがないと始まりません。「git init」コマンドを使用すると、カレントディレクトリ(Gitが処理する対象フォルダ)にリポジトリを新規作成します。

作成したリポジトリには「.git」という名前のディレクトリが作成されます。Gitのプログラムはこのディレクトリを使用することで、リポジトリの変更履歴を管理するのです。

$ cd [リポジトリを作成するディレクトリ]
$ git init

git initコマンドについてもっと詳しく知りたい方には、以下の記事もおすすめです。

はじめてのGit!initコマンドでリポジトリを作成してみよう!
更新日:2024年3月29日

git clone 「リポジトリをコピー」

「git clone」コマンドを実行すると、既存リポジトリを指定したディレクトリへコピーします。コピーするリポジトリは、リモートリポジトリ・ローカルリポジトリのどちらでも構いません。

$ git clone [コピーするリポジトリ] [コピー先ディレクトリ(省略可)]

なお、コピー先ディレクトリは省略可能です。省略した場合、カレントディレクトリに同名のリポジトリを作成します。

git cloneコマンドの情報がもっと欲しい方は、以下の記事も読んでみると良いでしょう。

git cloneで環境構築!リポジトリをクローンしよう
更新日:2024年3月1日

git gc 「リポジトリを最適化」

「git gc」コマンドを使用すると、すべてのリポジトリを最適化してくれます。具体的には管理上不要なファイルを削除したり、ファイルサイズを圧縮したりといった処理内容です。

$ git gc

実はリポジトリの最適化は、Gitのシステムが定期的に自動実行してくれます。そのため頻繁に実行する必要はありませんが、大量の変更内容を入れ込んだ場合などに手動で実行すると良いでしょう。

git pull 「リモートリポジトリの変更点をローカルリポジトリにマージ」

「git pull」は、リモートリポジトリの変更内容を指定したローカルリポジトリにマージ(統合)するコマンドです。チーム開発で他の人がリモートリポジトリに入れた変更内容を、ローカルリポジトリに取り込むために使われます。

$ git pull [マージ元のリモートリポジトリ名] [マージ先のローカルリポジトリ名]

厳密には、マージ元もマージ先も省略可能。ただし省略するためにはリポジトリの関連付けなどの事前設定が必要なので、今回は割愛します。

git pullコマンドについてより理解を深めたい方には、以下の記事もおすすめです。

【Git入門】pullでリモートリポジトリの履歴に更新する方法
更新日:2024年3月1日

git push 「ローカルリポジトリの変更点をリモートリポジトリにマージ」

「git push」はgit pullの反対で、指定したローカルリポジトリの変更内容をリモートリポジトリにマージするコマンドです。自分の変更内容をチーム開発用のリモートリポジトリにアップロードするために使われます。

ただし自分の想定していない変更をリモートリポジトリに入れると、チームに迷惑をかけてしまいます。git pushコマンドを実行する前には、後述の「git diff」コマンドにより差分のある箇所を確認しましょう。

$ git push [マージ先のリモートリポジトリ名] [マージ元のローカルリポジトリ名]

git pullコマンドと同様に、厳密にはマージ元・マージ先を省略できます。しかし正しく事前設定しないと想定外のリポジトリにマージされる恐れがあるので、おすすめしません。

以下の記事では実際にgit pushコマンドを使う方法をご紹介していますので、参考にしてくださいね。

【Git初心者向け】リポジトリの作成からpushまでを解説
更新日:2024年3月29日

コミットを操作するコマンド

コミットを操作するコマンド

画像:コミットのイメージ

「コミット」は、ローカルリポジトリに自分が変更した内容を入れ込むことです。コミットされたローカルリポジトリの変更内容が、前述のpushコマンド実行時にリモートリポジトリへマージされます。

コミット時には、変更者・変更日時・変更内容といった情報が変更履歴として記録されます。コミットを繰り返して、1つのリポジトリをバージョンアップさせていくのが開発の基本的な流れです。

この章では、コミットに関するGitコマンドを6つご紹介します。

git add 「コミット対象のファイルを登録」

「git add」は、新たに追加/変更/削除したファイルをインデックスに追加するコマンドです。前述のとおり、コミット時にはインデックスに追加されたファイルがすべてローカルリポジトリに加えられます。

元々Gitの管理対象となっていたファイルを削除(管理対象外に)する場合も、インデックスに追加&コミットが必要なので注意が必要です。

$ git add [追加/変更/削除したファイルパス1] [追加/変更/削除したファイルパス2] ・・・

上記のように半角スペース区切りでファイルパスを複数指定すると、ファイルを一括でインデックスに追加できます。また以下のようにすると、カレントディレクトリ配下で追加/変更/削除されたファイルを一括で追加できて便利です。

$ git add .

git addコマンドについてより詳しく知りたい方は、以下の記事もご覧くださいね。

0から解説!git addコマンドを使ってファイルを登録してみよう
更新日:2024年3月1日

git commit 「変更されたファイルをコミット」

「git commit」は、インデックスに存在するすべてのファイルをコミット(ローカルリポジトリにマージ)するコマンドです。新たに追加したファイルは、コミットすることで初めてGitの管理対象に加えられます。

$ git commit

git commitコマンドを実行すると、エディタが起動して変更履歴に記録するコミットメッセージの入力が求められます。エディタを起動したくない場合は以下のように、「-m」オプションとメッセージを指定すればOKです。

$ git commit -m "[コミットメッセージ]"

git commitコマンドについて更に知識を得たい方は、以下の記事もチェックしてはいかがでしょうか。

はじめてのGit!コミット(commit)でファイルを登録してみよう
更新日:2024年3月29日

git reset 「直前のコミットを取消」

コミットした後に、ミスに気づく場合もありますよね。このような場合は「git reset」コマンドを使うことで、直前のコミットを取り消せます。

$ git reset

git resetコマンドは主に、ローカルリポジトリへの変更を取り消すために使います。リモートリポジトリへの変更を取り消す際にも使えなくはありませんが、不整合が発生しやすいのでおすすめしません。

git resetコマンドをもっと使いこなしたい方は、以下の記事を読むとより高度な使い方が分かりますよ。

【Git入門】resetでコミットを取り消す方法を解説!
更新日:2024年3月1日

git revert 「特定のコミットを取消」

「git revert」コマンドを使うと特定バージョンのコミットだけを取り消して、ローカルリポジトリにコミットできます。たとえば、変更A→変更B→変更Cの順にコミットした場合、変更Aと変更Cはそのままにして変更Bだけを取り消し可能です。

ただし変更Bを取り消したとしても、当時の変更履歴は削除されないので注意しましょう。この場合、変更Bを取り消した旨の新たな変更履歴が追加されます。

$ git revert [取り消すコミットID]

なお、コミットIDは次章の「git log」コマンドを使用することで確認できます。git revertコマンドの情報がもっと欲しい方には、以下の記事もおすすめです。

緊急時の必須テクニック! git revertで不要な処理を打ち消そう
更新日:2024年3月1日

git log 「コミット履歴を表示」

「git log」は、ローカルリポジトリに自分がコミットした履歴を表示するコマンドです。さまざまな変更をコミットした後でも、このコマンドを使えば後から開発状況を把握できます

$ git log

表示される情報は、以下の通りです。

  • コミットID
  • 変更者の氏名・メールアドレス(基本的に自分の情報)
  • 変更日時
  • コミット時に入力したコミットメッセージ

git tag 「コミットにタグを付ける」

「git tag」コマンドを使うと、直前のコミットに対して分かりやすい別名(タグ)を付けられます。たとえば重要な変更を入れた際にタグを付けておくと、変更履歴の確認時に目印となるので便利です。

$ git tag [タグ名]

ローカルリポジトリのコミットに対して付けたタグを、リモートリポジトリに反映したい場合もありますよね。その場合は、git pushコマンドで以下のようにタグ名を指定して実行すればOKです。

$ git push origin [タグ名]

以下の記事ではgit tagコマンドを実際に使う方法をご紹介しているので、ぜひご覧ください。

【Git入門】git tagとは?基本をわかりやすく解説!
更新日:2024年3月1日

作業ツリーを操作するコマンド

作業ツリーを操作するコマンド

画像:作業ツリーのイメージ

作業ツリー(ワーキングツリー)とは、プログラマーが実際に変更するファイルの格納されたディレクトリです。前述のgit initコマンドでリポジトリを作成したディレクトリとも言い換えられます。

作業ツリーのファイルをコミットする際には、あらかじめ「インデックス」に追加する必要があります。インデックスとはコミット対象ファイルを格納しておく場所で、「控え室」のようなものです。

この章では、作業ツリーに関するGitコマンドを4つご紹介します。

git status 「作業ツリー内の差分ファイルを表示」

「git status」は、指定したディレクトリ内に下記いずれかの条件を満たすファイルがあれば、一覧で表示するコマンドです。

  • Gitの管理対象に含まれていない(新たに追加した)ファイル
  • インデックスに追加されたが、まだコミットされていないファイル
  • インデックスに追加されていないが、変更されているファイル
$ git status [表示するディレクトリ(省略可)]

ディレクトリを省略すると、作業ツリー全体のファイル状態を表示します。

git statusコマンドについてもっと詳しく知りたい方には、以下の記事もおすすめです。

はじめてのGit!git statusで変更内容を確認する方法
更新日:2024年3月29日

git diff 「ファイル内の差分箇所を表示」

「git diff」は、作業ツリー内の指定ファイルをリモートリポジトリのものと比較して、差分のある箇所を表示するコマンドです。前述のgit pushコマンドにより自分の変更をマージする前に、必ずこのコマンドで差分確認することをおすすめします。

$ git diff [変更を確認するファイル名またはディレクトリ(省略可)]

ディレクトリを指定した場合は、ディレクトリ内にある全ファイルの差分を一括で表示可能です。ファイルやディレクトリを省略した場合は、作業ツリー内にある全ファイルの差分を表示します。

git diffコマンドのさらに高度な使い方を知りたい方は、以下の記事も読むと良いでしょう。

過去のファイルと比較しよう! git-diffの使い方を解説
更新日:2024年3月1日

git mv 「ファイルを移動/ファイル名を変更」

「git mv」コマンドには、2つの用途が存在します。

1つ目は、ファイルを指定したディレクトリに移動させる使い方。ただし作業ツリー内で移動するだけなので、コミットしないとローカルリポジトリには反映されません。

$ git mv [移動するファイル名] [移動先のディレクトリ]

2つ目は、ファイル名を変更する使い方。こちらの場合も作業ツリー内のファイル名が変わるだけなので、ローカルリポジトリに反映させるにはコミットが必要です。

$ git mv [変更前のファイル名] [変更後のファイル名]

git stash 「作業ツリーの状態を一時的に保存」

「git stash」は、作業ツリーの状態を一時的に保存するコマンドです。作業ツリー内の変更内容をすぐにコミットしたくない場合、一時退避のために使われます。

$ git stash [実行コマンド]

実行コマンドの代表的なものは以下の4種類で、用途に応じて使い分けられます。

実行コマンド名用途
save作業ツリーの状態を保存
list保存されたバックアップデータを一覧表示
apply保存されたバックアップデータを使用する環境に戻す
drop保存されたバックアップデータを削除

git stashについてより詳しく知りたい方は、以下の記事もあわせて参考にしてください。

変更を一時的に退避しよう!git stashを使いこなす5つのステップ
更新日:2024年3月1日

ブランチを操作するコマンド

ブランチを操作するコマンド

画像:ブランチのイメージ

「ブランチ」とは、リモートリポジトリやローカルリポジトリをコピーして、分岐リポジトリを作る機能です。複数人で並行しての開発や、1人で複数機能を開発する場合などにブランチ機能が良く使われます。

ただし複数のブランチを同時には処理できないため、Gitのシステム上で次に処理する対象のブランチは決められています。処理対象ブランチの確認・切り替えに使うコマンドについては、後述しますね。

この章では、ブランチに関するGitコマンドを4つご紹介します。

git branch 「ブランチの作成/一覧表示」

「git branch」コマンドを使うと、現在処理対象となっているブランチを基にして新たなブランチを作成可能です。以下のように、作成するブランチ名を指定します。

$ git branch [作成するブランチ名]

また以下のようにブランチ名を省略すると、現在のローカルブランチ(自分のパソコン内にあるブランチ)を一覧表示できます。

$ git branch

リモートブランチ(共有サーバー上にあるブランチ)を一覧表示したい場合は、以下のように「-r」を付けます。

$ git branch -r

git branchコマンドについてさらに理解を深めたい方は、以下の記事も読むと良いでしょう。

【Git入門】ブランチ(branch)とは?メリットや使い方を解説!
更新日:2024年3月29日

git checkout 「処理対象ブランチの切り替え」

先ほど解説したとおり、Gitでは処理対象のブランチが決められています。処理対象のブランチを切り替えるために使うのが「git checkout」コマンドです。

$ git checkout [切り替えるブランチ名]

ブランチを切り替えた後にコミットを行うと、切り替え後のブランチに対して変更履歴が追加されます。チーム開発で自分の変更をマージする際に良く使われるコマンドです。

git merge 「別のブランチから変更点をマージ」

「git merge」は現在処理しているブランチに、別のブランチから変更点を取り込むコマンドです。各チームメンバーがブランチで変更した内容を、マスターリポジトリに集約する際に良く使われます。

$ git merge [変更点の取り込み元ブランチ名]

このコマンドを使用する際は必ず、前述のgit checkoutコマンドで取り込み先のブランチに処理対象を切り替えましょう。

以下の記事では、git mergeコマンドについてさらに詳しく解説しているのでおすすめです。

git mergeでブランチをマージしよう!いろんな疑問を徹底解説
更新日:2024年3月1日

git rebase 「派生元ブランチに変更点をマージ」

たとえば、ブランチAをコピーしてブランチBを作成したとします。この時、ブランチBの基になったブランチAが派生元ブランチ。「git rebase」コマンドを使うとブランチBで入れた変更内容をすべて、派生元であるブランチAに取り込めます。

$ git rebase [派生元ブランチ名]

前述のgit mergeコマンドでブランチAに変更をマージした場合は、コミット当時の時系列にしたがって変更履歴が記録されます。するとブランチAとブランチBの変更履歴が入り混じってしまい、分かりづらくなるのが難点です。

その点git rebaseコマンドでブランチAに変更を取り込む場合は、新たに追記する形でブランチBの変更履歴が記録されます。そのため、変更履歴の見やすさを保ったままマージしたい方におすすめのコマンドです。

git rebaseコマンドのさらに高度な使い方を知りたい方は、以下の記事もぜひチェックしてくださいね。

これで完璧! 図解でわかるgit rebaseの2つの使い方!
更新日:2024年3月1日

まとめ

今回は、良く使うGitコマンドを以下4カテゴリーに分けてご紹介しました。

  • リポジトリに関する5つのGitコマンド
  • コミットに関する6つのGitコマンド
  • 作業ツリーに関する4つのGitコマンド
  • ブランチに関する4つのGitコマンド

Gitコマンドはとても種類が多く、この記事で紹介しきれていない便利なコマンドもまだまだあります。しかし今回ご紹介したGitコマンドを使えるようになれば、開発で困ることはかなり少なくなるでしょう。

分からなくなったら、いつでもこの記事を読み返してくださいね。

この記事を書いた人

フリーランスコンサルタント。侍メディア事業部でのメディア運営・ライター業務なども担当。好きなショートカットキーは、command + w。愛機はMac Book Air。漢字は違うけど、名前がキングダムしがち。

目次