1296: Git Commit

Explain xkcd: It's 'cause you're dumb.
Revision as of 13:42, 3 July 2023 by (talk) (Undo revision 316815 by (talk) Edit is wrong. comic doesn't have "Path" in it, so it shouldn't be given in Transcript at same context as real quotes. Really should not be table)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Git Commit
Merge branch 'asdfasjkfdlas/alkdjf' into sdkjfls-final
Title text: Merge branch 'asdfasjkfdlas/alkdjf' into sdkjfls-final


This comic refers to the Git source code revision control software, which saves earlier versions of files and folders for later access into a special repository. This comes in handy when you want to try out whether an idea works (branching). Further, you can collaborate with others by use of remote repositories. Perhaps most importantly, it allows members of the development team to find key changes in the history, later. Git has been discussed in 1597: Git as well.

A commit is a saved version in a Git repository; a commit comes with a message that is supposed to describe what the commit contains, similar to the edit summaries used on MediaWiki sites such as explain xkcd and on this explanation. Randall, however, finds himself losing interest in the commit messages the more code he writes and winds up just using placeholder text or jokes to himself. Presumably, this is because his separate commits are part of a large effort that can't be effectively summarized, and where there's no particular urgent need to differentiate the commits. Seeing as in this context 12 hours of coding can be considered "dragging on," it's safe to assume that the kinds of commits Randall is talking about are not for some major in-production project, nor for something that a lot of other people are working on. In both of those cases, one would be much more likely to use descriptive commit messages, since you want to flag things that are important, either from a technical standpoint (e.g. "fix the thing that's making the site not work") or for the benefit of others who want to know which commits they should be paying attention to.

The phrase "Merge branch 'asdfasjkfdlas/alkdjf' into sdkjfls-final" mimics the phrasing used by Git. A branch is a specific sequence of commits which can be made in parallel to other branches of development, and later merged. Here, we see that Randall has also gotten lazy with his branch names: "branch 'asdfasjkfdlas/alkdjf'" might be the series of two commits starting with "here have code". "sdkjfls-final" could be the branch indicated by the vertical string of circles on the left, into which the other more branch is merged in commit "adkfjslkdfjsdklfj".

Most git tools show the commit history with the most recent commits first, so showing the oldest first like this would require something like the --reverse option.

The comments go from being pretty detailed as to his thoughts and reasons for the code ("enabled config file parsing"), to relatively uninformative summaries ("misc bugfixes"), to completely uninformative words ("more code"), and then finally he doesn't even bother trying to come up with words, instead just hitting a key ("aaaaaaaa") or semi-random keys ("adkfjslkdfjsdklfj"), then goes back to typing words but words that have a bit of a craziness to them rather than having anything to do with describing the code ("my hands are typing words"). The "adkfjslkdfjsdklfj" line and similar garbage in the title text comes from having your hands on the "home row" on a standard QWERTY keyboard, then hitting "random" keys without moving your fingers from their standard home row positions. The keys you hit "randomly" will be combinations of A, S, D, and F on the left hand, and J, K, L, and ; on the right hand (although the ; key seems to have been avoided, possibly because without the presence of surrounding quotes a ; character will end the comment). It is common to see stuff like that when a person is required to type something — i.e. a mandatory field — but they have no interest in typing anything meaningful or no idea what to write, so they just hit the easiest keys to hit and call it done.


  Comment Date
(main) created main loop & timing control 14 hours ago
(main) enabled config file parsing 9 hours ago
(main) misc bugfixes 5 hours ago
(main) code additions/edits 4 hours ago
(main) more code 4 hours ago
(branch) here have code 4 hours ago
(branch) aaaaaaaa 3 hours ago
(main) adkfjslkdfjsdklfj 3 hours ago
(main) my hands are typing words 2 hours ago
(main) haaaaaaaaands 2 hours ago
[Caption below the panel:]
As a project drags on, my Git commit messages get less and less informative.

comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!


Note that in most (all?) graphical history viewers for Git time flows from bottom up, i.e. newest commits are on top, not on bottom as in this comics --JakubNarebski (talk) 07:21, 27 November 2013 (UTC)

  • This was bothering me. I was starting to doubt my own experience, and intended to switch to an old project to check. — Kazvorpal (talk) 22:16, 18 December 2016 (UTC)

I can relate. While I start with reasonable commit messages every day, working on one feature often results in

(good description of feature)
bugfixes for (description of feature)
another bugfix
should work now
I hate (some used library)

when I either need commit to deploy or I'm so sure it will work I don't test it deeply enough. If I would be using git, these could be merged, but I'm not. -- Hkmaly (talk) 10:51, 27 November 2013 (UTC)

Once I made a commit titled "lotsa shit" (talk) (please sign your comments with ~~~~)

What does the line graphic in the left-most column represent? Smperron (talk) 13:03, 27 November 2013 (UTC)

This is the Git commit graph, in various ways of looking at a commit history git draws a graph like that to show branching and merging. (talk) (please sign your comments with ~~~~)

Nice explanation folks. Makes the comic understandable/humorous to a non-coder. (unless you count VBScript) --DanB (talk) 13:16, 27 November 2013 (UTC)

Nothing wrong with VBScript, though "coder" could be stretching the definition by a bit. (git it?) JChrisCompton (talk) 19:41, 5 December 2013 (UTC)
You seem to understand it pretty well now, DanB, judging by your edit history. --Aaron of Mpls (talk) 07:56, 18 April 2014 (UTC)

Commit Cloud is a relevant tool to read commit messages from Github and build a word cloud from the most-used words. (talk) (please sign your comments with ~~~~)

Mine actually lists a link to this comic. I'm laughing so hard right now. Okofish (talk) 09:35, 13 January 2015 (UTC)

I'm very glad I'm not the only person this happens to. --Okofish (talk) 15:23, 27 November 2013 (UTC)

Regarding "although he seems to have avoided the ; key for some reason": A likely reason is that messages are passed on the command line with -m and without surrounding quotes to save time, and the ; ends the command line. 06:03, 1 December 2013 (UTC)

haaaaaaands 21:18, 4 December 2018 (UTC)u2603

10/10 explanation of keyboard slams right there in that last paragraph 00:51, 15 December 2018 (UTC)

One thing that's bothering me is how Randall haven't fast-forwarded when merging "here have code" and "aaaaaaaa" into the main branch. It would've looked much less ugly! 21:33, 8 July 2019 (UTC)

Am I the only one who sometimes types "HAANDS" into the edit summary field when I'm just commenting? (EDIT: oops forgot signature) {)|(}Quill{)|(} 14:47, 19 April 2021 (UTC)

i just used "https://xkcd.com/1296/" as a commit message 22:43, 22 November 2022 (UTC)

this happens to me too, but with code reviews: since we do it through irc because it's me and my friend in another country, it's also text that derives into dumbness (i once put "vfhdvbuhvfehefuvb" in a review xd) --an user who has no account yet (talk) 17:20, 2 September 2023 (please sign your comments with ~~~~)

Ahoy there "an user who..."! If you're passing this way again:
  • You can (and should) still sign your Talk contributions. Use the ~~~~ at the end to datetime (and add the IP, before you get an account, but the datetime is the important bit!)
  • It's easy enough to get an account. If you're just like me and aren't satisfied with any username choice, fair enough, but I think you actually have a decent (ironic, once you join with it) username in your "...who has no account yet". That might be fun!
  • Except that, it's "A user...", not "An user". Because "user" doesn't start with a vowel sound. Not sure if this is you being deliberately off-beat (like your no-caps style of message), but on the off chance that English is your second(/third/etc) language. (And, if it is, then can't fault you otherwise. But maybe the quirks are deliberate...)
...just in case you notice this. I hope you do, but it's hard to know where you'll land next if you're jumping around on Random pages. 20:27, 2 September 2023 (UTC)

done, also, it was both on purpose and english being my second language, i have a really good grammar actually... when i want to :)

what was it, again? the signature thing

oh wait it's right there

my bad An user who has no account yet (talk) 22:05, 2 September 2023 (UTC)

Well then, welcome to the party. (Or grindstone. Or partying grindstone.) I had an inkling you were being a bit deliberate about it all (the "an user" bit), but there's worse out there. And, apart from the affectations, yup, I agree. Many who are competent at English as a second Language are better than some of those who should be competent in it as their first.
Anyhoo, just to acknowledge this (and possibly inadvertently insult many other anglophones!)... I wish you all the best in fitting right in. And now back to my other tasks... 23:25, 2 September 2023 (UTC)

ok thx, also, whenever i put nonsense in a review it means (and my friend knows it) "let's do it tomorrow" An user who has no account yet (talk) 13:01, 5 September 2023 (UTC)