Gitコマンド検索【無料・登録不要】やりたいことから探せるGitコマンド辞典|取り消し・ブランチ・push

Gitコマンド検索【無料・登録不要】やりたいことから探せるGitコマンド辞典|取り消し・ブランチ・push
engblog-poster

「直前のコミットを取り消したい」「作業中の変更をいったん退避したい」のように、やりたいことを日本語で入力するだけで Git のコマンドを探せる無料ツールです。初期設定・ブランチ・取り消し・リモートなど、よく使う 88 個のコマンドを、説明・使用例・コピーボタン付きでまとめました。

git reset --hard や git push --force のように、データが消えたり履歴が書き換わったりするコマンドには注意と安全な代わりの方法を表示します。コマンドと使用例は、Git 2.49.0 で実際に実行して確認しています。

カテゴリ:

< > で囲んだ部分(<ブランチ名> など)は、自分の環境に合わせて書き換えてから実行します。

コマンドと使用例は Git 2.49.0 で実行して確認しています。入力した検索語はお使いのブラウザ内だけで使い、サーバーへの送信や保存は一切行いません。

使い方

  1. 検索欄に、やりたいこと(例:「直前のコミットを取り消したい」「ブランチを作る」)か、コマンド名(例:「reset」「stash」)を入力します。入力と同時に、近いものから順に表示されます。
  2. 検索しないときは、カテゴリのボタン(よく使う・すべて・初期設定・ブランチ・取り消し・やり直し など)で一覧を切り替えられます。
  3. 使いたいコマンドの「コピー」を押してコピーし、Git Bash やターミナルに貼り付けます。<ブランチ名> のように < > で囲まれた部分は、自分の環境に合わせて書き換えます。
  4. 「説明と使用例」を押すと、コマンドの説明・オプション・使用例が開きます。

検索では、「取り消す・戻す・元に戻す・やり直す」のような同じ意味の言葉をまとめて扱います。ひらがなとカタカナ(「ぶらんち」と「ブランチ」)や、全角と半角(「reset」と「reset」)の違いも区別しません。

赤い線と「注意」の印が付いたコマンドは、実行するとコミットしていない変更が消える、リモートの履歴が書き換わるなど、元に戻せない(戻しにくい)ものです。「安全な方法」に書いた代わりのコマンドもあわせて確認してください。「注意が必要なコマンドだけ表示」にチェックを入れると、こうしたコマンドだけを一覧にできます。

Git 2.23 で、ブランチを切り替える git switch と、ファイルを元に戻す git restore が追加されました。それまでは、どちらも git checkout で行っていました。このツールでは新しいコマンドを中心に載せ、従来の git checkout などの書き方も並べて表示しています。

Gitとは?

Git(ギット)は、ファイルの変更の履歴を記録して管理する「バージョン管理システム」です。いつ・誰が・どのファイルをどう変えたかを記録しておけるので、過去の状態に戻したり、複数の人の変更を 1 つにまとめたりできます。Linux カーネル(Linux の中心部分)の開発者たちによって 2005 年に作られ、今ではプログラムの開発で広く使われています。

Git を使うときによく出てくる言葉を、かんたんにまとめます。

言葉意味
リポジトリファイルと変更の履歴をまとめて保存する場所。手元のパソコンにあるものをローカルリポジトリ、GitHub などのサーバーにあるものをリモートリポジトリと呼ぶ
コミットファイルの変更を、メッセージを付けて 1 つの記録として保存すること。また、その記録
ステージ(インデックス)次のコミットに含める変更を準備しておく場所。git add で変更をここに入れる
ブランチ履歴の枝分かれ。本流(main など)に影響を与えずに、別の作業を進められる
マージほかのブランチの変更を取り込んで 1 つにまとめること
HEAD今いる場所(今いるブランチの最新のコミット)。HEAD~1 は「その 1 つ前のコミット」
origingit clone したときのコピー元のリモートリポジトリに付く、標準の名前
push / pullpush は手元のコミットをリモートに送ること、pull はリモートの変更を手元に取り込むこと

ふだんの作業は、「ファイルを編集する → git add でステージする → git commit で記録する → git push でリモートに送る」の繰り返しです。

よく使う Git コマンド 10 選

まずはこの 10 個を覚えておけば、毎日の作業はほとんどこなせます。どれも Git 2.49.0 で実行して確認しています。

1. git clone(リポジトリを手元にコピーする)

git clone https://github.com/<ユーザー名>/<リポジトリ名>.git

GitHub などにあるリポジトリを、履歴ごと手元にコピーします。リポジトリ名のフォルダーが作られ、コピー元は origin という名前で登録されます。

2. git status(状態を確認する)

git status

今いるブランチと、変更したファイル・ステージしたファイル・まだ Git で管理していないファイルを表示します。迷ったら、まずこのコマンドで状態を確認しましょう。

3. git add(コミットする変更を選ぶ)

git add README.md

指定したファイルの変更をステージします。すべての変更をまとめてステージするときは git add -A を使います。

4. git commit(変更を記録する)

git commit -m "ログイン画面を追加"

ステージした変更を、メッセージを付けて記録します。メッセージには「何のための変更か」を書いておくと、あとで履歴を見たときに役立ちます。

5. git diff(変更の中身を見る)

git diff

まだステージしていない変更の中身(差分)を表示します。+ で始まる行が追加、- で始まる行が削除です。ステージした変更を見るときは git diff --staged を使います。

6. git log(履歴を見る)

git log --oneline

コミットの履歴を、1 コミット 1 行で新しい順に表示します。表示が長いときは、スペースキーで次のページへ進み、q で終了します。

7. git switch -c(ブランチを作って切り替える)

git switch -c feature/login

新しいブランチを作り、そのブランチに切り替えます。従来の書き方では git checkout -b feature/login です。作ってあるブランチに切り替えるときは、-c を付けずに git switch main のように書きます。

8. git merge(ほかのブランチを取り込む)

git merge feature/login

指定したブランチの変更を、今いるブランチに取り込みます。同じ場所を両方のブランチで変えているとコンフリクト(競合)が起きるので、ファイルを直して git add してから git merge --continue で完了させます。やめたいときは git merge --abort で元に戻せます。

9. git pull(リモートの変更を取り込む)

git pull

リモートの最新のコミットを取ってきて、今いるブランチに取り込みます。ほかの人と同じブランチで作業しているときは、作業を始める前に実行しておくと、あとのコンフリクトを減らせます。

10. git push(リモートに送る)

git push

手元のコミットをリモートに送ります。新しく作ったブランチを初めて送るときは、git push -u origin feature/login のように送り先を指定します。

よくある質問

入力した検索語は保存されませんか?

保存されません。検索はお使いのブラウザの中だけで行い、入力した言葉をサーバーに送ったり、ブラウザに保存したりすることはありません。コマンドのデータはすべてページの中に入っているので、外部への通信も行いません。

git checkout と git switch・git restore は、どちらを使えばよいですか?

どちらでも同じことができます。git checkout は「ブランチの切り替え」と「ファイルを元に戻す」の両方を 1 つのコマンドで行うため、どちらの意味で使っているのかがわかりにくいコマンドでした。そこで Git 2.23 で、それぞれ専用の git switch と git restore が追加されました。Git 2.23 より新しい Git を使っているなら、目的がはっきりわかる git switch と git restore がおすすめです。なお、Git 2.49 の公式ドキュメントでは、この 2 つのコマンドに「試験的(experimental)」と書かれていますが、最新の公式ドキュメントではこの記述はなくなっています。

PowerShell で HEAD@{1} や stash@{0} を使うとエラーになります

PowerShell では { } が特別な意味を持つため、そのまま書くと Git に正しく渡りません(Windows PowerShell 5.1 で確認)。次のように " で囲んでください。このツールの使用例は、はじめから囲んだ形で載せています。Git Bash やコマンド プロンプトでも、囲んだ形のまま使えます。

git stash show -p "stash@{0}"

コマンド プロンプトで HEAD^ を使うと、違うコミットになります

コマンド プロンプト(cmd)では ^ が特別な意味を持つ文字のため、HEAD^ と書くと ^ が消えて HEAD(今のコミット)として扱われてしまいます。エラーにならないので気づきにくく、注意が必要です。1 つ前のコミットは、どの環境でも同じように使える HEAD~1 と書くのがおすすめです。このツールでも HEAD~1 の形で載せています。

git reset –hard で消したコミットは元に戻せますか?

コミットしてあったものなら、多くの場合は戻せます。git reflog で HEAD の移動の記録を表示し、戻したいコミットの ID を探して、そのコミットからブランチを作ります。

git reflog
git branch rescue <コミットID>

ただし、一度もコミットしていなかった変更は Git に記録されていないため、元に戻せません。また、reflog の記録も一定の期間(標準の設定では、今のブランチからたどれないコミットのものは 30 日)がたつと削除の対象になります。

git push –force と –force-with-lease の違いは何ですか?

どちらもリモートの履歴を上書きする「強制 push」ですが、--force はリモートの状態を確認せずに上書きするため、ほかの人が先に送ったコミットも消してしまいます。--force-with-lease は、リモートのブランチが「手元で最後に確認したとき」から変わっていない場合だけ上書きし、変わっていれば「stale info」と表示して止まります。

ただし、直前に git fetch を実行すると「最後に確認したとき」が新しくなるため、ほかの人のコミットを見ないまま上書きできてしまいます(実際に試して確認しました)。Git 2.30 以降は、--force-if-includes を一緒に付けると、取り込んでいないリモートの変更があるときに止まるようになります。

git push --force-with-lease --force-if-includes

ブランチを削除しようとしたら「not fully merged」と表示されました

そのブランチに、まだどこにも取り込まれていないコミットがあるという意味です。git branch -d は、こうしたブランチを消さないようにしてくれる安全な削除です。中身を確認して本当に不要なときだけ、git branch -D で強制的に削除してください。

git pull で「Need to specify how to reconcile divergent branches」と表示されました

手元とリモートの両方に新しいコミットがあり、どうやって取り込むか(マージかリベースか)が設定されていないときに表示されます。その場で選ぶなら、リベースで取り込む git pull --rebase か、マージで取り込む git pull --no-rebase を実行します。毎回同じ方法にしたいときは、次のように設定しておきます(この例はマージで取り込む設定です)。

git config --global pull.rebase false

使っている Git のバージョンを確認するには?

次のコマンドで確認できます。git switch と git restore は Git 2.23 以降で使えます。

git --version

関連する記事・ツール

ABOUT ME
hr
hr
エンジニアとして働いている hr です。仕事や資格勉強で「こんなツールがあれば」と感じたものを、無料Webツールと解説記事にして発信しています。
記事URLをコピーしました