Gitコマンドジェネレーター

次へ

どんなエンジニアも「最後のコミットを取り消す方法」を少なくとも2回はGoogleで検索したことがあるはずです。reset --softreset --mixedreset --hardのどれを使うか迷う代わりに、リストからタスクを選べば、ジェネレーターがブランチ名、コミットのSHA、タグ名を差し込んだ正確なコマンドを表示します。

Gitコマンドを生成する手順

  1. 1

    タスクを選ぶ

    最後のコミットを取り消す、メッセージをamendする、mainへrebaseする、cherry-pickする、リモートへ強制リセットする、リリースにタグを付ける……

  2. 2

    パラメーターを入力する

    ブランチ名、コミットのSHA、タグ、各タスクに必要なフィールドだけです。

  3. 3

    コマンドを確認する

    ツールが正しいフラグを正しい順序で組み立てます。

  4. 4

    コピーして実行する

    ターミナルに貼り付けてください。擬似コードではなく、そのまま実行できる一行です。

カバーするタスク

タスク 生成されるコマンド
最後のコミットを取り消す(stagedを保持) git reset --soft HEAD~1
最後のコミットメッセージをamendする git commit --amend -m "…"
未コミットの変更をすべて破棄する git restore . + git clean -fd
新しいブランチを作成して切り替える git checkout -b feature/x
ブランチをローカルとリモートで削除する git branch -d x + git push origin --delete x
featureブランチをmainと同期する git fetch origin + git rebase origin/main
コミットをcherry-pickする git cherry-pick <sha>
コミットをrevertする(安全) git revert <sha>
リリースにタグを付けてpushする git tag -a v1.0.0 -m "…" + git push origin v1.0.0
ローカルをリモートへ強制リセットする git fetch origin + git reset --hard origin/main

安全・破壊的とマークされたコマンド

  • 安全(元に戻せる):commitswitchcheckout -breverttag
  • ローカルの作業ツリーに対して破壊的restore .clean -fdreset --hard
  • 共有履歴に対して破壊的push --forcefilter-repo、他の人が使うブランチでのrebase

ヒント:リスクの高いコマンドはドライランする

git clean -fdの前にgit clean -ndを実行してください。-nフラグは、実際には削除せずに削除される対象を表示します。git rmでも同じ考え方です。まずgit statusを確認しましょう。

よくある質問

「取り消す」が意味するものが異なるからです。reset --soft HEAD~1は変更をstagedのまま残すので再コミットできます。--mixedはステージを解除します。--hardは変更を破棄します。ジェネレーターでは、フラグを暗記する代わりに目的を選べます。

revertは古いコミットを打ち消す新しいコミットを作成します。履歴が保たれるため、共有ブランチでも安全です。resetはブランチのポインタを巻き戻すため履歴が変わり、ブランチが共有されている場合は強制pushが必要になります。

はい、「ファイルを全履歴から削除する」タスクに使えます。非推奨のfilter-branchより安全かつ高速です。別途インストールが必要です(brew install git-filter-repoまたはpip経由)。

いいえ。コマンドを表示するだけです。実行するかどうかは常にあなたの判断であり、リポジトリに触れる前にフラグや文脈を確認できます。

関連ツール

このツールは他の言語でも利用できます