#バージョン管理

18 件の記事

git push --forceでコミットを上書きしたとき — 復旧と再発防止
読了 7分

git push --forceでコミットを上書きしたとき — 復旧と再発防止

force pushでリモートブランチから同僚のコミットが消えたときの復旧手順を整理します。同僚のローカル、自分のreflog、ホスティングサービスの記録という3つの経路と、再発を防ぐ設定まで扱います。

Gitに大容量ファイルをコミットしたとき — 履歴整理とLFSへの移行
読了 6分

Gitに大容量ファイルをコミットしたとき — 履歴整理とLFSへの移行

pushが100MB制限で拒否されたり、リポジトリが数GBに膨らんだ状況の対応手順です。最大のblobを見つける診断から、filter-repoでの履歴整理、引き続き必要なファイルのGit LFSへの移行までを整理します。

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基礎シリーズの最終回です。