Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ugultopu/0b6412674073a5b603f8227cb108441c to your computer and use it in GitHub Desktop.
Save ugultopu/0b6412674073a5b603f8227cb108441c to your computer and use it in GitHub Desktop.

As far as I can tell, you can't do it conveniently. That is, git-rebase does not give you an option to preserve the committer date. Unless you give the --ignore-date (or its alias, --reset-author-date) option, it will always preserve the author date. However, there is no way to make git-rebase preserve the committer date, unless some manual script is crafted.

The best you can do is to make the committer date equal to the author date. Recently (in 2020 Q4), git-rebase --interactive has gained the ability to use the --committer-date-is-author-date flag with the interactive rebase. Before that, there was no way of influencing the committer date at all with the interactive rebase. Note that this flag does not preserve the committer date. It merely makes the committer date equal to the author date.

You might be thinking "well, isn't that effectively preserving the committer date, since normally the committer date is always equal to the author date?". Normally, you would be correct. However, there are a lot of scenarios where committer date is not equal to author date. For example, someone might have written a patch in 2021-03-05 and submitted it the same day. The patch might make its way into the repository only on 2021-03-15 (after reviewing, etc.) In this scenario, the author date would be 2021-03-05 but the committer date would be 2021-03-15.

Now, if you rebase that commit on 2021-04-10, by default, the committer date would be 2021-04-10. If you use the --committer-date-is-author-date option, the committer date would be 2021-03-05. However, as you can observe, in neither scenario the commiter date would be kept as 2021-03-15, which is the original commit's date.

In short, as far as I can tell, as of now (2021 Q1), there is no way of preserving the committer date in Git, not at least using a command line option. One might be able to craft a custom program or script that accomplishes this.

References

@MrkikouLIF
Copy link

MrkikouLIF commented May 7, 2024

Found this here to change all previous commit GIT_COMMITTER_DATE

git filter-branch --env-filter 'GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE; export GIT_COMMITTER_DATE'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment