Gitの事故から復旧する手順:消えた作業・誤コミット・誤push

Gitの事故から復旧する手順:消えた作業・誤コミット・誤push

worktree ごと消えた作業、push 前の直したいコミット、入れてはいけないファイル、force push、消したはずのブランチの復活。筆者が 1 週間で踏んだ 5 つの事故と、git 2.55.0 で確かめた戻し方を解説する。
Gitで上流の変更を取り込む前に確かめる3つのこと

Gitで上流の変更を取り込む前に確かめる3つのこと

main が進んだので rebase したら 15 ファイルで競合する。競合なしで通ったのに、マージ後にテストが落ちる。上流に入った同じ変更、ディレクトリの改名、並行ブランチの改名で踏んだ 3 つと、取り込む前に確かめる方法を解説する。
Gitの既定ブランチと派生元をスクリプトで判定する落とし穴

Gitの既定ブランチと派生元をスクリプトで判定する落とし穴

自作のブランチ一覧が触っていないブランチを「4コミット先」と出す。原因はfetchで更新されないorigin/HEAD。比較先の選び方、派生元をmerge-baseで推定した判断、config --listをgrepしない理由を解説する。
Gitのマージ済みブランチを一括削除する方法【2.56対応】

Gitのマージ済みブランチを一括削除する方法【2.56対応】

マージ済みのローカルブランチが溜まっていく悩みを、Git 2.56の--delete-mergedで片付ける方法。消える条件と消えない条件、2.55以前のgrep + xargsの落とし穴、掃除の前後で事故を防ぐコマンドまで解説する。