29 lines
832 B
Bash
29 lines
832 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Define dates
|
|
DATE1="2016-07-24T12:00:00"
|
|
DATE2="2020-07-25T12:00:00"
|
|
DATE3="2020-07-26T12:00:00"
|
|
DATE4="$(date -Iseconds)" # Today
|
|
|
|
# Get commit hashes
|
|
COMMITS=($(git rev-list --reverse HEAD))
|
|
|
|
# Create a temporary branch to work on
|
|
git checkout -b temp-rewrite
|
|
|
|
# Amend each commit
|
|
GIT_AUTHOR_DATE="$DATE1" GIT_COMMITTER_DATE="$DATE1" git commit --amend --no-edit
|
|
git cherry-pick ${COMMITS[1]}
|
|
GIT_AUTHOR_DATE="$DATE2" GIT_COMMITTER_DATE="$DATE2" git commit --amend --no-edit
|
|
git cherry-pick ${COMMITS[2]}
|
|
GIT_AUTHOR_DATE="$DATE3" GIT_COMMITTER_DATE="$DATE3" git commit --amend --no-edit
|
|
git cherry-pick ${COMMITS[3]}
|
|
GIT_AUTHOR_DATE="$DATE4" GIT_COMMITTER_DATE="$DATE4" git commit --amend --no-edit
|
|
|
|
# Switch main to the new history
|
|
git checkout main
|
|
git reset --hard temp-rewrite
|
|
git branch -D temp-rewrite
|