Git のコミットログを消して first commit だけにしたいときの方法のメモ。
たぶんやり方はいろいろある。例えばこれ。
これとはまた別の方法をやってみる。
コミットログを確認する。
※ l にエイリアスが設定済み (l=log --graph -n 20 --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(green)- %an, %cr%Creset')
$ git l * 749c2fc (HEAD -> main, origin/main) fix: tfsec指摘に対応 - Hoge Fuga, 2 days ago * b0eab15 feat: update eks cluster version - Hoge Fuga, 4 days ago * 526e31b fix: update providers - Hoge Fuga, 4 days ago * 34abb1b README を更新 - Hoge Fuga, 4 days ago * fce9484 fix: 不要な変数などを削除 - Hoge Fuga, 9 days ago * dc9c4d8 fix: コンテナイメージ名を変数化 - Hoge Fuga, 9 days ago * 77d9c05 fix: fsxnディレクトリの移動 - Hoge Fuga, 9 days ago * 04ca890 fix: コードのブラッシュアップ - Hoge Fuga, 9 days ago * 0c2eda1 feat: Container Insights用のADOTコレクター - Hoge Fuga, 9 days ago * b37f69e feat: Datadogのlogエンドポイントを追加 - Hoge Fuga, 10 days ago * 7fe4a30 feat: 各種アドオンの追加 - Hoge Fuga, 11 days ago * f88865d Managed Grafanaを追加 - Hoge Fuga, 11 days ago * 210b03f FSx for ONTAPを追加 - Hoge Fuga, 11 days ago * c29804e feat: Datadog用VPCを追加 - Hoge Fuga, 11 days ago * 8d21659 feat: Cloud9 用 IAM ロールを追加 - Hoge Fuga, 2 weeks ago * 40e2660 first commit - Hoge Fuga, 2 weeks ago
最初のコミットの時点に戻す。ただし --soft
とすることで、ファイルは元のままにする。
git reset --soft 40e2660
コミットログを確認する。最初のコミットに戻されている。
$ git l * 40e2660 (HEAD -> main) first commit - Hoge Fuga, 2 weeks ago
状態を確認する。変更のあったファイルがステージングされた状態になっている。
$ git status On branch main Your branch is behind 'origin/main' by 15 commits, and can be fast-forwarded. (use "git pull" to update your local branch) Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: README.md new file: cfn/terraform-backend.yaml new file: environments/addons/.terraform.lock.hcl (省略)
直前のコミットにファイルを追加する。
$ git commit --amend --no-edit The following files have been added, modified, moved, or removed: ******************************************************************** M README.md A cfn/terraform-backend.yaml A environments/addons/.terraform.lock.hcl (省略)
これで OK。
$ git l * 5b8d4fb (HEAD -> main) first commit - Hoge Fuga, 9 minutes ago
force push する。
$ git push -f You are pushing to the remote origin at codecommit::ap-northeast-1://terraform-fully-private-eks Enumerating objects: 168, done. Counting objects: 100% (168/168), done. Delta compression using up to 10 threads Compressing objects: 100% (150/150), done. Writing objects: 100% (168/168), 88.96 KiB | 5.93 MiB/s, done. Total 168 (delta 46), reused 0 (delta 0), pack-reused 0 remote: Validating objects: 100% To codecommit::ap-northeast-1://terraform-fully-private-eks + 749c2fc...5b8d4fb main -> main (forced update)