🔀

Gitで履歴の一番最初に空のコミットを挿入する

2023/11/16に公開

動機

mainブランチ全体のコードレビューをしてもらうために、空のブランチにPull Requestを作成したい。

first commitが空であればそこからブランチを生やせるが、空になっていないので出来ない。

first commitの前に空のコミットを挿入したい!

手順

  1. 親ブランチを持たないemptyブランチを作成
git checkout --orphan empty
  1. stagingされているファイルを解除
git rm --cached -r .
  1. 空のコミット
git commit --allow-empty -m "empty commit"
  1. mainに戻るために一旦差分を全てdiscard
git clean -f
  1. mainに戻る
git checkout main
  1. emptyブランチをrebase
git rebase empty

これでmainブランチのコミット履歴の先頭に"empty commit"が挿入されました。

  1. リモートリポジトリにforce push
git push --force

完了!

ついでに空のブランチを作成

  1. "empty commit"からreviewブランチを生やす。

EMPTY_COMMIT_IDは実際のコミットIDに置き換え

git checkout EMPTY_COMMIT_ID -b review
  1. リモートリポジトリにpush
git push --set-upstream origin review

あとはbase: reviewcompare: mainでPull Requestを作成すれば全てのファイルを差分としてレビューしてもらえます。

以上!

Discussion