🔀
Gitで履歴の一番最初に空のコミットを挿入する
動機
mainブランチ全体のコードレビューをしてもらうために、空のブランチにPull Requestを作成したい。
first commitが空であればそこからブランチを生やせるが、空になっていないので出来ない。
first commitの前に空のコミットを挿入したい!
手順
- 親ブランチを持たないemptyブランチを作成
git checkout --orphan empty
- stagingされているファイルを解除
git rm --cached -r .
- 空のコミット
git commit --allow-empty -m "empty commit"
- mainに戻るために一旦差分を全てdiscard
git clean -f
- mainに戻る
git checkout main
- emptyブランチをrebase
git rebase empty
これでmainブランチのコミット履歴の先頭に"empty commit"が挿入されました。
- リモートリポジトリにforce push
git push --force
完了!
ついでに空のブランチを作成
- "empty commit"からreviewブランチを生やす。
EMPTY_COMMIT_ID
は実際のコミットIDに置き換え
git checkout EMPTY_COMMIT_ID -b review
- リモートリポジトリにpush
git push --set-upstream origin review
あとはbase: review
、compare: main
でPull Requestを作成すれば全てのファイルを差分としてレビューしてもらえます。
以上!
Discussion