コミットの修正、スカッシュ、取り消し、トラッキング設定などのコミット管理に関するコマンドです。
直前のコミットを git commit --amend で再編集します。追加のオプションはそのまま渡せます。
git amend
git amend --no-edit
git amend -h # ヘルプを表示動作:
git commit --amendを呼び出し、直前のコミットを再編集します。- サブコマンドに渡した追加の引数は、そのまま
git commit --amendに引き渡されます(例:--no-editや--reset-author)。 - Git コマンドの終了コードを引き継ぐため、エディタを閉じるまで待機し、失敗時は同じ終了ステータスで終了します。
直近の複数コミットを対話的にスカッシュします。引数なしで実行すると最近のコミットを表示して選択できます。
git squash # 対話的にコミット数を選択
git squash 3 # 直近3つのコミットをスカッシュ
git squash -h # ヘルプを表示動作:
- 引数なしで実行すると、最近の10個のコミットを表示し、スカッシュするコミット数を入力で指定できます。
- 引数でコミット数を指定すると、その数のコミットを確認表示してからスカッシュします。
- 確認後、
git reset --soft HEAD~Nでコミットを取り消し、元のコミットメッセージを参考表示します。 - 新しいコミットメッセージをユーザーが入力し、自動的に新しいコミットを作成します。
直近のコミットを取り消し、変更内容をステージング状態のまま残します。
git undo-last-commit
git undo-last-commit -h # ヘルプを表示動作:
git reset --soft HEAD^を実行し、直近のコミットだけを取り消します。- 作業ツリーとステージング内容はそのまま残るため、コミットメッセージを修正したいときや再コミットしたいときに便利です。
現在のブランチにトラッキングブランチを設定します。リモートブランチがなければ自動的にプッシュします。
git track # origin/<現在のブランチ名> をトラッキング(リモートブランチがなければ自動プッシュ)
git track upstream # upstream/<現在のブランチ名> をトラッキング
git track origin feature-123 # origin/feature-123 をトラッキング
git track -h # ヘルプを表示動作:
- 引数なしで実行すると、現在のブランチに対して
origin/<現在のブランチ名>をトラッキングブランチとして設定します。 - リモート名を指定すると、そのリモートの同名ブランチをトラッキングします(例:
upstream)。 - リモート名とブランチ名の両方を指定すると、そのリモートブランチをトラッキングします。
- 指定したリモートブランチが存在しない場合は、自動的に
git push --set-upstreamを実行してリモートブランチを作成し、トラッキング設定を行います。
git pull 実行時に「There is no tracking information for the current branch」というエラーが出た場合や、新しいブランチを作成後すぐに git push したい場合に便利です。リモートブランチがまだ存在しない場合でも、git track 一つでプッシュとトラッキング設定が完了します。