Gitは最も人気のあるバージョン管理システムの1つであり、ソフトウェア開発において重要な役割を果たしています。
本投稿では、よく利用するGitコマンド16選をカテゴリ分けして紹介します。また、各コマンドの便利なオプションも合わせて紹介します。
\自身のスキルを向上するには技術書で!!/
月額¥980で技術書が読み放題!!
- ビジネススキルとマインド向上したい!!
- 決断や行動を先送りにしてしまう方!!
便利なGitコマンド一覧
今回紹介するコマンドの一覧は下記のとおりです。
| # | コマンド | 説明 |
|---|---|---|
| 1 | git init | 新しいGitリポジトリを作成 |
| 2 | git config | ユーザ名やメールアドレスなどGitの設定を管理 |
| 3 | git add | コミット対象のファイルを登録 |
| 4 | git commit | 変更されたファイルをコミット |
| 5 | git log | コミットした履歴を表示 |
| 6 | git branch | ブランチの作成、一覧表示、削除などの操作 |
| 7 | git checkout | ブランチの切り替えやコミットの取り消し |
| 8 | git merge | ブランチのマージを実施 |
| 9 | git remote | リモートリポジトリの管理 |
| 10 | git clone | リモートリポジトリからローカルにクローン |
| 11 | git pull | リモートリポジトリの変更内容をローカルのリポジトリにマージ |
| 12 | git push | ローカルリポジトリの変更内容をリモート先のリポジトリにマージ |
| 13 | git status | 変更されたファイルなどの状態を表示 |
| 14 | git diff | 変更内容の差分を表示 |
| 15 | git reset | 変更内容(コミット前)を取り消す |
| 16 | git fetch | リモートリポジトリからブランチの情報を取得し表示 |
リポジトリ作成と設定
git init
新しいGitリポジトリを作成する時に利用するコマンドとなります。
カレントディレクトリ内に.gitディレクトリが作成されます。(リポジトリを構成するディレクトリ)
基本的な構文は下記のとおりです
git init [ディレクトリ]
すでに存在するリポジトリを初期化したい場合もinitコマンドを利用します。
$ git init
もし、特定のディレクトリに作成したい場合は、対象のディレクトリを作成しそのディレクトリに移動した後、「git init」コマンドを実行します。
$ mkdir hoge
$ cd hoge
$ git init
Initialized empty Git repository in /xxxxx/hoge/.git/Initialized empty Git repository in xxxx のようなメッセージが表示されれば成功です。
git config
Gitの設定(ユーザ名やメールアドレスなど)を管理するためのコマンドです。
基本的な構文は下記のとおりです。
git config [オプション] 設定名 値
グローバルな設定を行う
オプションに「–global」をつけて実行することで、グローバル設定が可能。
| コマンド例 | 説明 |
|---|---|
| git config –global user.name “Hoge” | グローバルなユーザ名を設定 |
| git config –global user.email “sample@example.com” | グローバルなメールアドレスを設定 |
| git config –global core.editor “vim” | グローバルなデフォルトのテキストエディタを設定する |
| git config –global color.ui “auto” | グローバルなカラー表示を有効にする(通常はauto) |
「–global」オプションをつけずに設定すると、リポジトリごとの設定となります。
また、「–system」オプションをつけることで、システム全体に対する設定をすることができます。
グローバルの設定は「~/.gitconfig」ファイルに保存されます。リポジトリごとの設定については「.git/.gitconfig」ファイルに保存されます。
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| –get [設定名] | 指定した設定値を表示 | git config –get user.name |
| –list | 現在の設定をリスト形式で表示 | git config –list |
| –unset [設定名] | 指定した設定値を削除する | git config –unset key |
| –unset-all | すべての設定値を削除 | git config –global –unset-all |
コミット作成と履歴
git add
変更をステージングエリアに追加するコマンドが「git add」となります。
基本的な構文は下記のとおりです。
git add [オプション] [ファイル or ディレクトリ]
指定したファイルをステージングエリアに追加
git add index.html
指定したディレクトリ内のすべての変更されたファイルをステージングエリアに追加
git add images/
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -A または –all | 変更されたすべてのファイルをステージングエリアに追加 | git add -A |
| -u または –update | 変更された既存のファイルと削除されたファイルをステージングエリアに追加 | git add -u |
| -p または –patch | 一部変更したものを対話的に選択してステージングエリアに追加 | git add –patch index.html |
git commit
ステージングエリアに追加された変更を新しいコミットとして確定させるために使用されます。このコマンドを使用することで、リポジトリのバージョン履歴に変更を追加することができます。
基本的な構文は下記のとおりです。
git commit [オプション]
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -a または –all | ステージングエリアに追加された変更だけでなく、ワーキングツリーの変更も自動的にコミットに含める | git commit -a -m “Update README” |
| -m | コミットに対してメッセージを追加する | git commit -m “Add new feature” |
| –amend | 直前のコミットを修正する | git commit –amend -m “Fix typo” |
git log
リポジトリのコミット履歴を表示するために使用します。git logコマンドでは作者や日付、メッセージなどの変更内容が確認できます。
基本的な構文は下記のとおりです。
git log [オプション] [<オブジェクト名>...]
基本的な使い方は下記のとおりです。
$ git log
上記は、リポジトリのコミット履歴を最新のコミットから順に表示します。
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| –oneline | シンプルな形式でコミット履歴を表示 | git log –oneline |
| -n [数値] | 表示するコミット数を指定して表示 | git log -n 5 |
| –author=[名前] | 指定した作成者のコミットのみを表示 | git log –author=”John Doe” |
| –since=[日付] | 指定した日付以降にコミットされたものを表示 | git log –since=”2022-01-01″ |
ブランチとマージ
git branch
リポジトリ内のブランチに関する情報を表示したり、新しいブランチの作成や削除などを行うために使用します。
基本的な構文は下記のとおりです。
git branch [オプション] [ブランチ名]
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -a または -all | ローカルブランチとリモートブランチを含めたすべてのブランチを表示 | git branch -a |
| -r または –remote | リモートブランチの一覧のみ表示 | git branch -r |
| -d または –delete [名前] | 指定したブランチを削除 | git branch -d t_branch |
| -v または –verbose | 各ブランチの最後のコミットメッセージとコミットハッシュを表示 | git branch -v |
git checkout
ブランチの切り替えやコミットの復元、ファイルの復元など、作業ディレクトリやステージングエリアを変更するために使用されます。
基本的な構文は下記のとおりです。
git checkout [オプション] <参照>
指定したブランチに切り替える場合は下記のコマンドを実行します。
$ git checkout main123 # main123 ブランチに切り替え
指定したコミットに切り替える場合は下記のようにコミットのハッシュを指定して作業ディレクトリに復元します。
$ git checkout xxxxxxxx # コミットハッシュが xxxxxxxx のコミットに切り替え
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -b [ブランチ名] | 指定したブランチ名で新しいブランチを作成し、そのブランチに切り替える | git checkout -b new-branch old_blanch |
| –detach [コミットハッシュ] | 指定したコミットの状態に作業ディレクトリを切り替えますが、HEAD はブランチではなくコミットを指す | git checkout –detach xxxxxxxx |
| — [ファイル名] | 指定したファイルを作業ディレクトリの最新のコミットの状態に復元 | git checkout — index.html |
git merge
異なるブランチの変更内容を統合するために使用します。
基本的な構文は下記のとおりです。
git merge [オプション] <ブランチ名>
使用例としては下記のとおりです。
$ git merge feature_branch # feature_branch ブランチの変更を現在のブランチにマージ
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| –no-ff | マージコミットの作成を必須として、Fast-forwrdマージを行いません。常に新しいコミットを作成 | git merge –no-ff feature_branch |
| –squash [ブランチ名] | マージするコミットを単一のコミットにまとめる | git merge –squash feature_branch |
| –abort | マージを注視し、マージ前の状態に戻す | git merge –abort |
リモートリポジトリ
git remote
リモートリポジトリの管理を行います。リモートリポジトリとの接続や追加、削除、リネームなどの操作を行うためのコマンドです。
基本的な構文は下記のとおりです。
git remote [オプション] <サブコマンド>
オプションなしで指定すると、地ポジ取りに登録されているリモートリポジトリの一覧を表示することができます。
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -v または –verbose | リモートリポジトリのURLを表示 | git remote -v |
| add [リポジトリ名] [URL] | 指定したリポジトリ名でリモートリポジトリを追加 | git remote add abc123 https://github.com/user/repo.git |
| rename [現在のリポジトリ名] [新しいリポジトリ名] | 現在のリポジトリ名を新しいリポジトリ名で指定した名前に変更 | git remote rename abc123 456def |
| remove [リポジトリ名] | 指定したリポジトリ名のリモートリポジトリを削除 | git remote remove abc123 |
git clone
リモートリポジトリからローカルリポジトリを作成する際に使用するコマンドです。
基本的な構文は下記のとおりです。
git clone [オプション] <リポジトリURL> [ディレクトリ名]
リモートリポジトリの全てのコンテンツを取得して新しいローカルリポジトリを作成します。
git clone https://github.com/user/repo.git # リポジトリをクローン
指定したディレクトリ名で新しいリポジトリを作成する場合は下記のように実行します。
$ git clone https://github.com/user/repo.git my_repo # リポジトリを my_repo というディレクトリ名でクローン
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -b [ブランチ名] [リポジトリURL] | 指定したブランチの内容をクローン | git clone –depth 1 https://github.com/user/repo.git |
| –depth [数値] [リポジトリURL] | 指定した数値のコミット履歴のみをクローン | git clone -b main https://github.com/user/repo.git |
git pull
リモートリポジトリから最新の変更を取得して、現在のブランチにマージするために使用されます。
基本的な構文は下記のとおりです。
git pull [オプション] [<リモートリポジトリ名>] [<リモートブランチ名>]
使用例としては下記のとおりです。
$ git pull # 現在のブランチに関連付けられたリモートリポジトリから最新の変更を取得してマージ
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -r または –rebase | 取得した変更をマージする代わりにリベースして適用 | git pull –rebase |
| [リモートリポジトリ名] | マージするリモートリポジトリ名を指定することで、 指定したリモートリポジトリから最新の変更を取得してマージ | git pull origin |
git push
ローカルリポジトリの変更をリモートリポジトリにプッシュします。
基本的な構文は下記のとおりです。
git push [オプション] <リモートリポジトリ名> <ローカルブランチ名>:<リモートブランチ名>
使い方は下記のとおりです。
$ git push origin main:main # ローカルの main ブランチの変更を origin リモートリポジトリの main ブランチに送信
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -f | 競合や変更があった場合でも強制的にプッシュを実施 | git push -f [リモートリポジトリ名] [ローカルブランチ名]:[リモートブランチ名] |
| –tags [リモートリポジトリ名] | 全てのタグをリモートリポジトリに送信 | git push –tags [リモートリポジトリ名] |
git status
Git リポジトリの現在の状態を表示するコマンドです。
このコマンドを使用すると、変更されたファイル、追跡されていないファイル、ステージングされたファイル、コミットされていないファイルなど、リポジトリの状態を確認することができます。
基本的な構文は下記のとおりです。
git status [オプション]
実際に使ってみると下記のとおりです。
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README.md
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: hello.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
この例では、README.md ファイルが変更されており、hello.txt ファイルが新規作成されています。また、.gitignore ファイルは未追跡ファイルです。
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -v | 詳細なステータスを表示 | git status -v |
| -s | 簡易ステータスを表示 | git status -s |
| -b | ブランチのステータスを表示 | git status -b |
| -c | コミットのステータスを表示 | git status -c |
git diff
Git リポジトリのワークツリーとインデックス、またはインデックスと指定したコミット、またはワークツリーと指定したコミットとの間での変更を表示するコマンドです。
基本的な構文は下記のとおりです。
git diff [オプション] [<commit> [<commit>]] [--] [<path>...]
ローカルリポジトリの最新コミットと作業ツリーの差分を表示する場合は下記のように実行します。
$ git diff HEAD
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| –cached | インデックスと最新のコミットとの間の差分を表示 | git diff –cached |
| –stat | 変更されたファイルと変更行数の統計情報を表示 | git diff –stat |
| –color | 差分の表示にカラーを追加 | git diff –color |
git reset
コミットやステージングエリア(インデックス)の状態を変更するために使用されます。
基本的な構文は下記のとおりです。
git reset [オプション] <コミット>
直前のコミットを取り消す場合は、下記のように実行します。
$ git reset HEAD~1
上記を実行することで、直前のコミットを取り消し、その変更をワーキングディレクトリに戻します。
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| –soft | 指定したコミットまでの変更を取り消し、変更内容をステージングエリアに保持 | git reset –soft abc123 |
| –mixed | 指定したコミットまでの変更を取り消し、変更内容をワーキングディレクトリに保持 | git reset –mixed abc123 |
| –hard | 指定したコミットまでの変更を完全に取り消し、変更内容をワーキングディレクトリからステージングエリアまで削除 | git reset –hard abc123 |
git fetch
リモートリポジトリから最新の変更を取得するために使用されますが、現在の作業ディレクトリやブランチには影響を与えません。
git fetch は、リモートリポジトリの最新のコミットやブランチ情報を取得し、ローカルリポジトリに反映します。
基本的な構文は下記のとおりです。
git fetch [オプション] [<リモートリポジトリ名>]
特定のリモートリポジトリから最新の情報を取得する場合は下記のように実行します。
git fetch origin
代表的なオプションコマンド
| コマンドオプション | 説明 | コマンド例 |
|---|---|---|
| -v | より詳細な情報を表示 | git fetch -v |
| –prune | リモートリポジトリから削除されたブランチやタグも削除 | git fetch –prune |
最後に
このブログでは、Gitのさまざまなカテゴリにわたる16の便利なコマンドを紹介しました。
これらのコマンドを使えば、Gitを効果的に使用し、プロジェクトのバージョン管理を円滑に行うことができます。


