What commit message do you use when you can't remember why you made the changes?

You have been away for a while, you come back and the team has made huge progress, you do a git status in your repo and you have uncommitted changes but have no clue when you were doing at the time!

Write your answer…

8 answers

If I cannot remember what I did, I usually

  1. $ git branch -l to see what I was working on
  2. use a diff against the last commit in my local repo and work on / commit with a useful message
  3. if I still dunno what I did $ git reset --hard && git pull
  4. work on

If you cannot remember what you did, your changes are probably not important anyway. If your team has even made "huge progress" after "you have been away for a while" while not needing your commit, your contribution was probably not necessary either or already implemented by someone else.

Never commit stuff you do not understand. Never commit untested changes. Ideally, implement review and CI processes for pushes and pull-requests. Also try out a sane git branching strategy, using feature branches, so you at least know what you were working on. I really like gitflow , but depending on your situation, there are other good strategies as well.

When writing a commit message, I usually use a verb as the first word followed by the content, for example

$ git commit -am "implement .abc file format for asset loader"
$ git commit -am "fix #123"
$ git commit -am "add package.json"
$ git commit -am "remove foo as a dependency"

Can do git stash instead of git reset though, in case you remember later.

Reply to this…

Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!

  • 💬 Ask programming questions without being judged

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 More than 500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Create my profile

That situation should ideally never arise in the first place. I strongly follow Atwood's recommenation of Commit Early, Commit Often.

if the code isn't checked into source control, it doesn't exist.

Reply to this…

If your company uses only sort of project management or ticketing system, you could leverage that. I use the GitFlow branching strategy. So when I start working on a new feature, I'll make a feature branch which I name with a ticket number. Example: features/BRB-247. When the branch is named in this way, you can refer back to the associated ticket to remind yourself what you were working on.

And hopefully you haven't changed ticketing systems in the interim :D

Reply to this…

2 things ...

  1. you should never commit what you don't understand.
  2. you write in the commit message what the changes are.

there are different philosophies ... I write in present tense

#ticketNr <summary headline>
 - does blabla
 - change blub
 - add moo

as an example

#1337 implements new menu endpoints
 - adds role model and references
 - adds new backend for menu customization
 - changes parts of the user model
Show all replies

I too like to summarize things in bullet points on a commit after the summary headline. If anything, I rely on them for remembering smaller details about a commit that wouldn't be obvious via just the headline.

Reply to this…

Most work stuff I do is on a branch named with a JIRA issue key (and all commits prefixed with the key as well), so I can go read the JIRA if the commit messages aren't enough context.

If the changes are uncommitted there's a good chance they'll at least be on branch abc-123 If there are commits the the log is likely to say something like ABC-123 Progress commit with rough implemention of the new turboencabulator.

But realistically if the team had made lots of progress and even I couldn't remember what the changes were, I'd probably hard reset and move on. Not all code is worth keeping, particularly not code written just before going on a break ;)

If you're concerned it may actually be important and you'll remember in time, stick the changes in a branch like 20180609-mystery-changes and store them in a fork. Git branches are cheap after all.

If you really really have to work out what it was; you're going to have to check the log to see if a previous commit message jogs your memory; and look at the diff and just straight-up figure it out from first principles.

Reply to this…

Load more responses