Skip to content
DevMeme
3222 of 7435
The Art of Ignoring Git Best Practices
VersionControl Post #3543, on Aug 16, 2021 in TG

The Art of Ignoring Git Best Practices

Why is this VersionControl meme funny?

Level 1: Shrugging It Off

Imagine your teacher gave you two separate homework assignments and asked you to turn them in on different sheets of paper. Instead, you do both assignments on one sheet of paper. Now the teacher asks, “Why did you put two assignments on one page when I told you to use separate pages?” And you just look up and answer, “Yeah.” 🙃 That doesn’t explain anything, right? It’s like you’re just saying “Yep, I did that,” with a shrug. It’s silly because the teacher was expecting a reason or an apology, but you only gave one word that isn’t an answer at all. In the meme, the developer did something similar by combining two tasks into one batch of work when they weren’t supposed to, and when asked why, they basically shrugged it off with a one-word reply. It’s funny in a cheeky way — we laugh because it’s such a blunt, inappropriate response to a serious question, kind of like a kid getting caught and just going “yeah” without any excuse. Everyone who sees it understands that feeling of exasperation and can’t help but smile at how absurd that reply is.

Level 2: Two Birds, One Branch

Let’s break down what’s happening in simpler terms. The meme shows a snippet of a code review conversation. In a code review, one developer (the reviewer) is looking at another developer’s code changes (the author of the code) and leaving comments. Here, the reviewer asks: “Why have you joined 2 tasks in one branch?” This question is pointing out a potential problem with how the author managed their code changes using Git (a version control system).

  • Branch: In Git, a branch is like a separate line of development or a sandbox for making changes. Think of it as a parallel copy of the code where you can work on something new without affecting the main codebase. Teams often create a new branch for each feature or bug fix they’re working on. For example, you might have one branch for the “login form feature” and another branch for the “checkout bug fix.”
  • Task: In this context, a task likely refers to a specific piece of work, often tracked by a ticket in a system like Jira. So “2 tasks” could mean two separate issues or features that were supposed to be handled independently. Each task usually would have its own branch and its own pull request to merge the changes back into the main code.

Now, joining 2 tasks in one branch means the developer combined the work for two separate tasks into a single branch. Instead of having, say, one branch for Task A and another for Task B, they did both Task A and Task B on the same branch. This is generally considered a bad practice (hence the meme) for a few reasons:

  • Confusing Reviews: When you bundle multiple changes together, the PullRequest that’s created from that branch will contain all the changes for both tasks. A reviewer now has to sort out which code change belongs to which task, which can be confusing. They might be thinking, “This file change relates to feature X, but why is it in the same PR as feature Y?”
  • Risk of Delays: If the reviewer finds an issue with one of the tasks’ changes (for example, Task A has a bug or needs rework), it can hold up the entire branch from being merged. Task B’s code, which might be fine, is stuck waiting because it’s tangled up with Task A’s code in that one branch. In separate branches, Task B could have been merged independently.
  • Merge and Deployment Issues: Each branch usually gets tested and merged separately. When two things are in one branch, it’s harder to test or deploy them separately. For instance, if Task A was a new feature and Task B was a critical bug fix, ideally you’d want to deploy the bug fix immediately and the feature later. But if they’re in one branch, you have to deploy them together or not at all. This reduces flexibility.

The reviewer’s question “Why have you joined 2 tasks in one branch?” sounds a bit like a teacher asking a student, “Why did you mix two assignments together?” It’s somewhat critical but gives the author a chance to explain. Maybe the reviewer is hoping to hear a justification, like “Oh, these tasks were so closely related it made sense,” or an admission “I realize I shouldn’t have; I can separate them.” It’s basically a prompt for the author to talk about their BranchingStrategy (or lack thereof). This ties into what we call branch hygiene – a term that means keeping your branches clean and focused (one branch, one purpose, like keeping each toothbrush for one person — you wouldn’t share one toothbrush for two people, right?). Good branch hygiene helps keep the project organized.

Now, the funny bit: the author’s reply is just “Yeah.” That’s it. Just one word, not even a full sentence. This response is humorous in a facepalm kind of way because it doesn’t answer the “why” at all. It’s like if someone asked, “Did you eat all the cookies I left on the table?” and the only thing you say back is “Yeah.” It confirms that you did it, but gives absolutely no explanation. It’s oddly bold and unhelpful at the same time.

In a normal professional communication during a code review, you’d expect the author to either explain or rectify the situation. Maybe they’d say, “Sorry, I realize I did that. I can split the branch into two separate ones,” or “I combined them because feature A required some groundwork that I did while doing feature B.” Some kind of discussion. Instead, here the author basically gave a one-word shrug. It’s a bit sarcastic or dismissive in tone — like they’re not interested in having that discussion.

From a junior developer’s perspective, it’s good to understand that this is highlighting what not to do. CodeReview culture is about collaboration. If a reviewer points out something about your process (like how you managed your branches), it’s usually best to engage constructively. The author just saying “Yeah” is funny in the meme, but in real life it might annoy your teammates since it comes off as you brushing away a valid comment. It’s called a minimalist reply here because it’s the absolute bare minimum one could respond with.

To visualize why mixing tasks in a single branch is problematic, imagine you have two separate to-do items and your team expects two separate deliveries. It’s like packing two different customer orders in one box. The person receiving it goes, “Why are Order #101 and Order #102 in the same package?” That’s confusing and against the usual process. In software, the separate “packages” are branches. We keep tasks separate so we can deliver (merge) them separately. When someone doesn’t do this, it creates extra work to sort things out.

Finally, the whole scene is tagged as DeveloperHumor and VersionControlHumor because teams who use Git and do a lot of code reviews often encounter quirky situations like this. It’s an inside joke: we’ve all either accidentally broken the branching rules or had to review someone’s jumbo combination branch. Seeing the author just reply “Yeah” pokes fun at those awkward moments. It’s both a laugh and a gentle reminder: branch_hygiene matters, and good communication matters too. Otherwise, you might end up as the next meme in someone’s chat group!

Level 3: One Branch to Rule Them All

In this meme, we witness a code review showdown encapsulated in a screenshot. A reviewer asks the million-dollar question: “Why have you joined 2 tasks in one branch?” — essentially calling out a breach of branch hygiene. In team workflows, branch hygiene means keeping each Git branch focused on a single issue or feature. It’s a cornerstone of any sane BranchingStrategy. Here, the developer (the pull request author) has crammed changes for multiple tasks in one branch, a classic no-no. The reviewer is understandably alarmed, since combining two Jira tickets’ worth of work into one PullRequest can create a monster of a diff. The humor hits when we see the author’s response: a lone "Yeah." — nothing more.

For seasoned developers, this one-word reply is the perfect facepalm moment. It’s the ultimate low-effort comeback to a legitimate code review concern. The reviewer has basically pointed out a mini process violation, expecting an explanation or a plan to fix it. Instead, the author replies with minimalist defiance (or perhaps exhausted resignation). It’s so terse you can hear the silent shrug. This abrupt communication breakdown is funny because it’s relatable: most senior devs have encountered that one colleague who answers a detailed question with a monosyllable, stalling the conversation. It’s a dose of dark DeveloperHumor highlighting how code reviews sometimes go off the rails.

Let’s unpack why jamming two tasks into one branch is a big deal (and thus why the reviewer is raising the question). In modern Git workflows, branches are cheap and Git encourages you to create many of them for isolation. Best practice is one branch per Jira issue or feature. When you join 2 tasks in one branch, several problems arise:

  • Bloated PRs: The CodeReview for that branch now has to cover multiple topics. Reviewers have to sift through intermixed changes and figure out which code belongs to Task A and which belongs to Task B. It doubles the cognitive load in one review.
  • Entangled Deployment: If Task A is ready to ship but Task B isn’t, too bad — they’re stuck together. You can’t merge one without the other. The tasks become coupled like a two-headed beast. This often delays releases or forces risky partial cherry-picks.
  • Merge Conflict Chaos: Working on unrelated fixes in one branch increases the chance of nasty MergeConflicts later. For instance, if someone else was also touching similar code for a different feature, untangling the overlap becomes nightmare-fuel. Separate branches would isolate those changes; one branch to rule them all invites a merge hell.
  • Poor Traceability: In tools like Jira, you typically link branches or commits to a single ticket. A branch serving two masters confuses project tracking. The release notes might lump two issues together or, worse, one issue might slip through cracks because it’s hidden behind another in the same branch.

Despite these well-known pitfalls, why do developers still do this? Why would someone knowingly violate the Prime Directive of GitBranching (one branch, one task)? Here are some too-real reasons:

  • “It Was Convenient”: Perhaps the two tasks were in the same part of the codebase, and the developer thought knocking them out together would be efficient. Why go through the hassle of two separate branches and PRs when a single mega-branch will do? (Spoiler: because of all the reasons above, but convenience is a temptress.)
  • Time Pressure or Laziness: Schedules can be brutal. Maybe a deadline was looming Friday and the dev figured merging both fixes in one go would save time. No one wants to juggle multiple PRs when the clock is ticking. This often backfires, turning quick merges into long CodeReviewPainPoints as reviewers struggle to untangle the threads.
  • Scope Creep: The developer might have started with one task and organically ended up solving another related issue in the process. “Oh, while I’m here fixing login validation, I might as well clean up the password reset flow.” Suddenly a single-purpose branch becomes a kitchen sink of changes. It feels like good initiative at the time — until the reviewer asks why the PullRequest is trying to do two things at once.
  • Unaware of Policy: Sometimes it’s just a novice mistake. A less experienced dev might not realize why mixing tasks is frowned upon. They see a branch as just “my workspace” and cram everything in. The reviewer’s comment is, in part, an educational nudge: hey, we usually separate tasks into different branches.

Now, the real gem of this meme is the author’s response: “Yeah.” It’s a masterclass in deadpan humor, whether intentional or not. The reviewer essentially asked “Why did you do this bad thing?” and the author just says “Yep, I did.” No excuse, no explanation like “sorry, I’ll fix it” or “these two were tightly related, hence one branch.” Just a flat acknowledgment. It’s the textual equivalent of a poker face. In a healthy review process, this reply is almost a conversation ender — where can the reviewer even go from there? The author hasn’t given them anything to work with. They neither defended the decision nor agreed to correct it. It’s a bit sarcastic in its brevity, almost as if saying, “Yeah, I did that. What of it?”

This situation drips with uncomfortable truth. The reviewer_vs_author_sarcasm dynamic is strong here. The reviewer is likely exasperated: they tried to start a constructive discussion about process, and got a one-word wall in return. You can imagine them staring at the comment, not sure if the author is being flippant or just doesn’t care. The author’s minimalist reply might also indicate they’re tired or annoyed themselves — maybe they think the reviewer is nitpicking on process instead of focusing on the actual code. Hence the subtext could be “Yeah (I did, now can we move on?)”. It’s a mini standoff. It’s funny to us on the outside because we’re not the ones in that awkward situation. We get to laugh at how absurd it is to see a serious question answered so nonchalantly.

The presence of the “Create task” button in the screenshot adds an extra layer of irony. Most likely, this is an Atlassian Bitbucket or Azure DevOps interface where a reviewer can turn comments into action items. The reviewer might be hovering over “Create task” right after seeing “Yeah.”, thinking: “Alright wise guy, I’m gonna make you a task to split those branches.” The interface’s formality (Reply, Like, Delete, Create task) contrasts with the author’s caveman-level reply. It’s like having a high-tech cockpit to navigate a discussion, but the pilot on the other end just grunts.

From an organizational perspective, this little comment exchange hints at bigger pr_process_breakdown issues. Maybe the team hasn’t clearly enforced branching guidelines, or this developer has a habit of cutting corners. The fact that it’s in a meme suggests it’s not an isolated incident; it resonates with many devs because teams everywhere grapple with balancing rules versus pragmatism. When process communication fails, you get scenes like this: passive-aggressive or apathetic remarks in code reviews. It’s a cautionary tale (wrapped in a joke) about the importance of setting expectations in version control practices and the importance of respectful, clear communication during reviews.

Ultimately, the meme is both cathartic and educational for those in software development. It says: “Look, we’ve all seen this – someone merges unrelated things together and doesn’t even bother to justify it. It’s frustrating, but aren’t we glad we can laugh about it?” The VersionControlHumor here is a coping mechanism. We joke about the “one branch to rule them all” anti-pattern because if we didn’t laugh, we might cry when dealing with it at work. The post’s caption “True story, bro” nails it – this scenario isn’t just comic imagination, it’s pulled from real-life pain. Every experienced engineer reading this likely cringes in recognition and then chuckles, because sometimes all you can do is say, “Yep… been there, seen that.”

Description

A screenshot of a comment section from a project management or version control platform. The first comment asks, 'Why have you joined 2 tasks in one branch?'. The author of the code has simply replied 'Yeah.'. This meme humorously captures a common scenario in software development where a developer knowingly ignores best practices, such as the principle of atomic commits or one feature per branch. The curt, affirmative response 'Yeah.' suggests a level of nonchalance or defiance that is relatable to experienced developers who have witnessed or participated in chaotic development workflows under pressure or in less disciplined environments. The humor lies in the blunt acknowledgment of the bad practice without any justification

Comments

18
Anonymous ★ Top Pick That's not two tasks in one branch. It's a surprise monolith migration, feature flag TBD
  1. Anonymous ★ Top Pick

    That's not two tasks in one branch. It's a surprise monolith migration, feature flag TBD

  2. Anonymous

    Branch hygiene? We’re running deadline-driven Schrödinger’s GitFlow - two Jira tickets exist separately until the PR opens, then they collapse into one 800-line diff nobody wants to review

  3. Anonymous

    After 15 years in the industry, you realize 'Yeah' is just shorthand for 'I know it's wrong, you know it's wrong, but we both know it's already merged to main in my heart and the sprint ends tomorrow.'

  4. Anonymous

    When asked why you merged two Jira tickets into one branch, responding 'Yeah.' is the Git equivalent of `git commit -m 'stuff'` - technically a response, but it tells your reviewer absolutely nothing about whether this was intentional architectural consolidation or just you being too lazy to create a feature branch per task. At least have the decency to blame it on 'reducing merge conflicts' or 'atomic deployments' like the rest of us

  5. Anonymous

    Two tasks, one branch: because nothing accelerates tech debt like turning reviewers into archaeologists digging through commit history

  6. Anonymous

    Two tasks in one branch - the poor man’s two-phase commit: reviewers as the lock manager, and “git revert” as the compensation step

  7. Anonymous

    Two tasks in one branch? Great - now rollback is a distributed transaction without a coordinator, and git bisect answers “it depends.”

  8. @TERASKULL 4y

    *laughs in dumping all changes into the master branch without a specific order*

  9. @Bodziek 4y

    Yeah

  10. @okutaner 4y

    “Create task”

  11. Deleted Account 4y

    russian…

    1. @callofvoid0 4y

      I think it means "why" maybe with this dictation "зачем"

  12. @callofvoid0 4y

    really?

    1. @dugeru42 4y

      as in the ultimate answer to any "why" -зачем? -затем. -почему? -потому. -why? -because.

      1. @callofvoid0 4y

        is it something like why? 'cause sky is high

        1. @dugeru42 4y

          yup

  13. @nekotiefu 4y

    I don't think so

  14. @lexore 4y

    they never lies (not really)

Use J and K for navigation