Git

Gitに秘密鍵をコミットしたとき — キーのローテーションとfilter-repoでの履歴整理
読了 7分

Gitに秘密鍵をコミットしたとき — キーのローテーションとfilter-repoでの履歴整理

AWSキー、APIトークン、.envファイルをコミットしてpushまでしてしまった事故の対応手順を整理します。最優先は履歴の整理ではなくキーの無効化です。filter-repoで履歴を書き換える手順と予防の仕組みまで扱います。

Git detached HEADから抜け出す — 原因とコミットの復旧
読了 5分

Git detached HEADから抜け出す — 原因とコミットの復旧

You are in detached HEAD stateという警告の意味を構造から説明し、状況別の抜け出し方を整理します。この状態で作ったコミットを失わずにブランチへ保存する方法まで扱います。

削除したGitコミットとブランチをreflogで復旧する
読了 6分

削除したGitコミットとブランチをreflogで復旧する

git reset --hardで消したコミットと-Dで削除したブランチをreflogで復旧する手順を整理します。reflogが記録するものとしないもの、復旧できないケースまで区別します。

Git実務ワークフロー #7 モノレポとGit — sparse-checkout・サブモジュール・LFS
読了 9分

Git実務ワークフロー #7 モノレポとGit — sparse-checkout・サブモジュール・LFS

リポジトリが大きくなるとGitが遅くなる理由を押さえ、partial clone、sparse-checkout、サブモジュール、Git LFSをいつ使うのかを整理します。Git実務ワークフローシリーズの最終回です。

Git実務ワークフロー #6 stash・cherry-pick・bisect — 日常ツールセット
読了 7分

Git実務ワークフロー #6 stash・cherry-pick・bisect — 日常ツールセット

急な切り替えを受け止めるstash、特定コミットだけを別ブランチに移すcherry-pick、バグ混入コミットを二分探索で特定するbisectまで。必要な瞬間にないと困る3つのツールを整理します。

Git実務ワークフロー #5 PR運用 — レビュー単位・コミットメッセージ・draft PR
読了 9分

Git実務ワークフロー #5 PR運用 — レビュー単位・コミットメッセージ・draft PR

レビュー可能なサイズにPRを分割する基準、Conventional Commits、draft PRとセルフレビュー、PRテンプレートとbranch protectionまで。チームでPRを運用する観点を整理します。

Git実務ワークフロー #4 コンフリクト解決 — 構造とmergetool・rerere
読了 7分

Git実務ワークフロー #4 コンフリクト解決 — 構造とmergetool・rerere

コンフリクトをbase・ours・theirsの構造で理解し、道具で扱う方法をまとめます。rebaseでoursとtheirsが逆に見える理由、zdiff3マーカー、VS Codeのmerge editor、同じコンフリクトを二度解かないrerereまで扱います。

Git実務ワークフロー #3 interactive rebase — squash・fixupでコミット整理
読了 8分

Git実務ワークフロー #3 interactive rebase — squash・fixupでコミット整理

PRを開く前にコミットを読める単位に整理するinteractive rebaseを扱います。todoリストの6つのコマンド、fixupとautosquashのワークフロー、整理したブランチを安全に上げるforce-with-leaseまでまとめます。

Git実務ワークフロー #2 rebase vs merge — 判断基準と禁則
読了 7分

Git実務ワークフロー #2 rebase vs merge — 判断基準と禁則

rebaseがコミットを新しく作り直して再適用する原理をダイアグラムで確認し、mergeとの選択基準を立てます。共有ブランチをrebaseしてはいけない理由まで構造で説明します。

Git基礎 #6 GitHubと初めてのPull Request
読了 8分

Git基礎 #6 GitHubと初めてのPull Request

GitHubにリポジトリを作ってローカルリポジトリを接続し、ブランチ作成からレビュー反映、マージ後の後片付けまで、初めてのPull Requestの全体の流れをたどります。Git基礎シリーズの最終回です。

Git実務ワークフロー #1 ブランチ戦略 — GitHub Flowとtrunk-based
読了 7分

Git実務ワークフロー #1 ブランチ戦略 — GitHub Flowとtrunk-based

Git Flow、GitHub Flow、trunk-based developmentという3つのブランチ戦略の構造と前提条件を比較し、チーム規模とデプロイ頻度に応じた選択基準を立てます。

Git基礎 #5 取り消し — restore・reset・revertの使い分け
読了 7分

Git基礎 #5 取り消し — restore・reset・revertの使い分け

編集の破棄、ステージング解除、コミットの修正、コミットの取り消し、プッシュ済みコミットの巻き戻しまで。状況別にrestore、reset、revertのどれを使うべきかを3つの領域モデルで整理します。