目次

1. 初めに

コミットやプッシュの後に資産やメッセージの編集が必要になることが時々あります。 ここでは主にTortoiseGitを用いたリベースによる過去改変の記事リンクをまとめました。

2. 注意事項

リベースはプッシュ前のコミットや、作業している人が自身しかいないブランチのコミットに対して実施してください。

もし、チームで使用しているリポジトリでリベースした場合は大変なことになります。 例えば、あるローカルリポジトリでリベースされる前のコミットが残っている状態で誰かがプッシュしようとした場合、 そのコミットは他の誰かによって強制的に上書きされているため、プッシュできない旨のエラーが発生してしまいます。

3. 直前のコミットのやり直し、コミットメッセージの編集

プッシュ済みのコミットを対象とする場合、 強制的に以前のコミットを上書きするために把握している変更をチェックしてプッシュします。

4. コミットメッセージの日時の維持

GitHubで表示される時間はCommitDateですが、前章の直前のコミットのやり直しを実施するとこの時間が上書きされます。 そのため、初めてコミットした時の日時であるAuthorDateCommitDateを上書きする必要があります。

> git rebase HEAD~1 --committer-date-is-author-date

注意事項として初回コミットをリベースする方法はありますが、コマンドが必要です。 なので、GitHubでリポジトリを作成する際はREADME.md.gitignoreLICENSEを自動生成した方が後々楽です。

また、プッシュ済みのコミットを対象とする場合、 強制的に以前のコミットを上書きするために把握している変更をチェックしてプッシュします。

5. コミットの取り消し

プッシュ済みのコミットを対象とする場合、 強制的に以前のコミットを上書きするために把握している変更をチェックしてプッシュします。

6. 最後に

これで間違ったコミットを綺麗にできますね。 ただ、一番いいのは最初のコミットで不備がないようにすることなので気を付けたいです。

7. 参考サイト

  1. TortoiseGit でコミットメッセージを変更する - へっぽこプログラマーの備忘録
  2. Gitの過去のコミットメッセージを日時を維持しつつ修正(初回コミット分も含めて) - Imaginary West Coast
  3. 【TortoiseGit】コミットを取り消し(なかったことに)したい時の手順 - 絶壁の断崖絶壁

8. 出典元

  1. TortoiseGit