Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Escape # character in interactive rebase commit message [duplicate]

Tags:

git

After performing an interactive rebase in git I want to have a commit message that starts with the # (hash, or pound) character, but lines starting with # are treated as comments and ignored.

Is there any way to escape the # character to make my commit message actually start with a #?

More Details

I am performing an interactive rebase using:

git rebase -i HEAD~4

Then, in the editor I am doing whatever is needed, e.g.:

pick b010299 #91691 Add test for logging in with valid credentials
reword 5e9159d 91691 Implement log-in feature
pick 2735aa3 #91691 Re-factor logic
pick 14bd500 #91691 Tidy up 'using' declarations

# Rebase 60d6e3f..14bd500 onto 60d6e3f
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

Then git loads the commit message in my text editor for the commit I want to reword, but I want to save my commit message with a # at the beginning:

#91691 Implement log-in feature

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# rebase in progress; onto 60d6e3f
# You are currently editing a commit while rebasing branch 'master' on '60d6e3f'.
#
# Changes to be committed:
#   modified:   My.Website.LogInController.cs

But that means my commit message will be ignored. How do I go about making the commit message #91691 Implement log-in feature?

like image 853
Owain Williams Avatar asked Jan 26 '16 14:01

Owain Williams


People also ask

What escape life means?

Definition of escape with one's life : to avoid death She narrowly escaped with her life.

What is escape synonym?

Some common synonyms of escape are avoid, elude, eschew, evade, and shun.

What is an example of escape?

[count] : an act of escaping from a place, situation, etc. The prisoners attempted a daring escape. He celebrated his escape from his boring job with a long vacation. She had a lucky escape when she wasn't injured in the accident.

Is it escape from or escape?

escape from somebody/something He escaped from prison this morning. She attempted to escape from the pirates holding her hostage. escape somebody/something She managed to escape her captors. He escaped prison with two other inmates.


1 Answers

If you save your commit message with the #, it results in your commit message being blank (you could also delete everything in the commit message). Git will show you what to do:

Aborting commit due to empty commit message.
Could not amend commit after successfully picking 5e9159d9ce3a5c3c87a4fb7932fda4e53c7891db... 91691 Implement log-in feature
This is most likely due to an empty commit message, or the pre-commit hook
failed. If the pre-commit hook failed, you may need to resolve the issue before
you are able to reword the commit.
You can amend the commit now, with

        git commit --amend

Once you are satisfied with your changes, run

        git rebase --continue

So, just amend the message:

git commit --amend -m "#91691 Implement log-in feature"

and continue the rebase:

git rebase --continue
like image 56
Owain Williams Avatar answered Oct 27 '22 22:10

Owain Williams