243

Is there any way of online editing the commit message in GitHub.com, after submission?

From the command line, one can do

git commit --amend -m "New commit message"

as correctly suggested in the following question:

Trying git pull and then git push has worked (without any other commit having interfered in the mean time).

But can it be done via the GitHub website?

1
  • Please see @DanGreen-Leipciger's answer even though it is not the accepted one. Commented Jan 12, 2018 at 7:22

9 Answers 9

193

GitHub's instructions for doing this:

  1. On the command line, navigate to the repository that contains the commit you want to amend.
  2. Type git commit --amend and press Enter.
  3. In your text editor, edit the commit message and save the commit.
  4. Use the git push --force origin example-branch command to force push over the old commit.

Source: https://help.github.com/articles/changing-a-commit-message/

Sign up to request clarification or add additional context in comments.

11 Comments

BE CAREFUL! The difference between using < git commit --amend > & < Enter >, and < git commit --amend -m "new commit message" >, is that in the 1st case you're editing your commit message in a text editor & in the 2nd your replacing it with the "new commit message". If you force the push this will replace the commit on your remote. This does NOT solve the problem that if other people on your team have pulled the previous commit you now have different histories (including different commits) on different machines. If you know no one has pulled your commit this is safe. Read source Dan posted
git commit --amend has always existed. Also you're getting confused between git (which is an open source command line tool) and Github (which is a company providing an online source hosting).
The OP asked about GitHub, and specifically about after the commit has been pushed to their servers. Those are GitHub's instructions for doing what the OP asked about.
@DanGreen-Leipciger - yeah, but this is not done on the website itself, it is done using command line. I reckon PNS wanted to do that from within the web interface.
The OP asked how to do it with GitHub specifically, this is how to do it with GitHub specifically.
|
141

No, this is not directly possible. The hash for every Git commit is also calculated based on the commit message. When you change the commit message, you change the commit hash. If you want to push that commit, you have to force that push (git push -f). But if already someone pulled your old commit and started a work based on that commit, they would have to rebase their work onto your new commit.

5 Comments

I could also do git pull and then git push and it worked. But apparently there is no online way.
Still not possible as of April 5th, 2016
And i guess it won't be high priority, since you would change the commit history of an already published branch, which you should never do (except if you are 200% sure, that nobody else has this branch on his local machine).
This is only half-true. It's true, but only with assumptions. The answer would be better if it were combined with that from @DanGreen (below). It isn't "directly possible", and certainly it comes with forewarnings (ie: "you should 'never' do this... [except when you are sure you want to]") -- but simply saying this isn't possible, when it technically is possible, is an incomplete answer.
The OP asked, if it is possible to do it online on the Github website. AFAIK this is still not possible. So my answer is valid, and the answer of Dan Green handles only the way how to do it locally, not on Githubs website.
32

You need to git push -f assuming that nobody has pulled the other commit before. Beware, you're changing history.

Comments

6

For intellij users: If you want to make changes in interactive way for past commits, which are not pushed follow below steps in Intellij:

  • Select Version Control
  • Select Log
  • Right click the commit for which you want to amend comment
  • Click reword
  • Done

Hope it helps

1 Comment

In JetBrains PHPStorm in 2022 it is slightly differently worded (Git Menu -> Show Git Log -> Right click commit -> Edit Commit Message), but basically the same. Worked a treat, thanks!
3

No, because the commit message is related with the commit SHA / hash, and if we change it the commit SHA is also changed. The way I used is to create a comment on that commit. I can't think the other way.

Comments

2

For Android Studio / intellij users:

  • Select Version Control
  • Select Log
  • Right click the commit for which you want to rename
  • Click Edit Commit Message
  • Write your commit message
  • Done

Comments

2

I was asked to amend a patch commit message that I had submitted on github, (and ended up here.) This is what I did to get the job done.

git clone [email protected]:YOURNAME/EXAMPLE.git; cd EXAMPLE; git fetch --all; git pull --all
git checkout -b patch-2 origin/patch-2 # create local patch-2 branch
git commit --amend # update the commit message
git push -f

This works for the last commit on a branch. If the commit in question is deeper you will need to do something more complicated. (I don't know if the fetch and pull are needed, but I just past in that line while I work on something else to save time.)

Comments

2

I was facing the same problem.

See in your github for a particular branch and you will come to know the commit id of the very first commit in that branch. do a rebase to that:

git rebase -i <Commit SHA of first commit>

an editor will open up. Do a track of your commits from github UI and open editor and change the messages.

Comments

1

For Visual Studio users:

You are able to modify the commit message from the commit tab by clicking Unpushed Commit (1) and the View Outgoing/Incoming option (2). Then, once comment is modified (3), 'Amend Message' option (4) is enabled and changes are performed automatically in the commit.

enter image description here

Tested on VS 2019

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.