#バージョン管理
18 件の記事
git push --forceでコミットを上書きしたとき — 復旧と再発防止
force pushでリモートブランチから同僚のコミットが消えたときの復旧手順を整理します。同僚のローカル、自分のreflog、ホスティングサービスの記録という3つの経路と、再発を防ぐ設定まで扱います。
Gitに大容量ファイルをコミットしたとき — 履歴整理とLFSへの移行
pushが100MB制限で拒否されたり、リポジトリが数GBに膨らんだ状況の対応手順です。最大のblobを見つける診断から、filter-repoでの履歴整理、引き続き必要なファイルのGit LFSへの移行までを整理します。
Gitに秘密鍵をコミットしたとき — キーのローテーションとfilter-repoでの履歴整理
AWSキー、APIトークン、.envファイルをコミットしてpushまでしてしまった事故の対応手順を整理します。最優先は履歴の整理ではなくキーの無効化です。filter-repoで履歴を書き換える手順と予防の仕組みまで扱います。
Git detached HEADから抜け出す — 原因とコミットの復旧
You are in detached HEAD stateという警告の意味を構造から説明し、状況別の抜け出し方を整理します。この状態で作ったコミットを失わずにブランチへ保存する方法まで扱います。
削除したGitコミットとブランチをreflogで復旧する
git reset --hardで消したコミットと-Dで削除したブランチをreflogで復旧する手順を整理します。reflogが記録するものとしないもの、復旧できないケースまで区別します。
Git実務ワークフロー #7 モノレポとGit — sparse-checkout・サブモジュール・LFS
リポジトリが大きくなるとGitが遅くなる理由を押さえ、partial clone、sparse-checkout、サブモジュール、Git LFSをいつ使うのかを整理します。Git実務ワークフローシリーズの最終回です。
Git実務ワークフロー #6 stash・cherry-pick・bisect — 日常ツールセット
急な切り替えを受け止めるstash、特定コミットだけを別ブランチに移すcherry-pick、バグ混入コミットを二分探索で特定するbisectまで。必要な瞬間にないと困る3つのツールを整理します。
Git実務ワークフロー #3 interactive rebase — squash・fixupでコミット整理
PRを開く前にコミットを読める単位に整理するinteractive rebaseを扱います。todoリストの6つのコマンド、fixupとautosquashのワークフロー、整理したブランチを安全に上げるforce-with-leaseまでまとめます。