To modify the information of the most recent Git commit (including the commit message and possibly the content of files that need to be changed), and these changes should also be reflected in the remote repository.
1. Modify the message of the most recent commit#
Make sure you are currently on the local branch where you want to modify the commit information.
Use the git commit --amend
command to modify the message of the most recent commit.
After running this command, an editor will open (based on your system configuration), allowing you to modify the commit message.
Once you have made the modifications, save and close the editor.
If you want to directly specify a new commit message without opening the editor, you can use the -m
parameter.
git commit --amend -m "New message"
2. Push to the remote repository#
Because you have modified the commit history, pushing directly to the remote repository will result in conflicts.
In this case, we need to use the --force
or --force-with-lease
parameter to force push and overwrite the corresponding commit in the remote repository.
Use --force
(not recommended)
git push --force origin <remote branch>
Using
--force
will forcefully update the remote branch to be in sync with your local branch.
If there are other commits to the remote branch by someone else during this time, they will be overwritten by your push.
Therefore,--force
should be used with caution.
Use --force-with-lease
(recommended)
git push --force-with-lease origin <remote branch>
--force-with-lease
provides a safer way to force push.
It checks if the state of the remote branch is as expected before pushing.
If there are new commits by others to the remote branch since your last pull, the push will fail to prevent accidentally overriding someone else's work.
In a collaborative development environment,--force-with-lease
is a better choice.