- Clone the repo.
- Use
git rebase -i --root
- vim will open. Select the commits you want to modify by changing
pick
toedit
. If you would like to change all the commits, enable line numbers withset nu
and perform the following replace::1,Ns/pick/edit/g
(whereN
is the line number of the last line) - You will now be shown all the selected commits one by one. Each commit message will be displayed. You have two options:
- If you would like to keep the commit author details the same, do a
git rebase --continue
. - If you would like to change it to a different name/email, do
git commit --amend --reset-author
. If--reset-author
is specified, it will use the details from your git config. (If you need to specify an alternate name/email, you can do so with--author="John Doe <john@example.com>"
. If you would like to change the time to a previous date, you can do so with--date "2 days ago"
.)
- If you would like to keep the commit author details the same, do a
- Do the same for all the commits and finish the rebase.
- Perform `git push -f origin ma
Follow the instructions on Github to Create an Access Token in Github
By default, git credentials are not cached so you need to tell Git if you want to avoid having to provide them each time Github requires you to authenticate. On Mac, Git comes with an “osxkeychain” mode, which caches credentials in the secure keychain that’s attached to your system account.
You can tell Git you want to store credentials in the osxkeychain by running the following:-