Which git branch are you on?
Which git branch are you on?
Which git branch are you on?
Locking comments. Had a good run, over half a day, but this was always headed for an emotional train wreck.
main
in the streets, master
in the sheets
Mommy.
about to start using mommy for all my projects now
MOAB (mother of all branches)
git checkout mommy
fork mommy
Checkout Mommy
I get wanting to move away from "master," but why in the world didn't we use "trunk"
It was already a standard name, and it fits "branches," etc.
"trunk" is what it was called in SVN, too. Well, kind of. SVN didn't have a real concept of branching like Git does, but the main development would almost always happen in a root directory called "trunk".
I'm not sure why Bitkeeper used "master", but that's why Git called it that (Git was originally built as a replacement for Bitkeeper).
Fossil uses the term Trunk.
It's a Git-alternative that has github-like features built into it; Used by SQLite devs
I would have loved to go back to trunk. Also main and master have different meanings.
I personally don't think the word "master" should be considered offensive - my wife has a master's degree in deaf education - but I've switched to "main" because that seems to be the convention now and it really doesn't have to be an issue.
There's no "slave" convention in git so I'm not sure how it can be considered an issue (I get that drives being master and slave is a bit icky). But then, what is it a master of?
As others have said, "trunk" would have been a more sensible replacement.
It's a master the same way that an original recording (the final version before mass reproduction) is called a master; mixing and processing the raw media clips into such a recording is called mastering. It's a convention that has existed long before computers were a thing.
But then, what is it a master of?
It's about master copy. You have a master copy, and you have the development copies that are a copy of the master which is where you make your changes.
If i had to guess, the problem is that people don't know how to use git and develop in the master
Honest question. I cannot see if you are being serious here. If this is a real thing, is it because of US slavery history? No way you are saying your wife has a main degree in deaf education?
No, I said I don't think the word "master" is inherently offensive - after all, my wife has a master's degree. But to answer OP's question, I've switched to "main" as my git branch because that seems to be the new convention.
I find "master" offensive, so I make sure I main bate instead.
It's a retroactive bastardization of the word based on one particular culture's one particular interpretation of it (master being, apparently, a slaveowner) that ignores both the much earlier meanings of master artisan or master craftsman (as opposed to journeyman and apprentice) and masterpiece (through which an artisan is recognised as a master), and the modern meaning of a master copy (like a master record in disc printing).
This isn't like replacing the "master and slave" terminology with regard to connected devices. That one was warranted because it was often inaccurate and confusing. But forcing the adoption of main instead of master feels like someone got offended on someone else's behalf because a word looked superficially like that other bad word, and apparently we can't have an understanding that goes deeper than what letters it's made up of.
Amerika ist wunderbar. This is an --initial-branch=master
household.
regardless of that, it's never inconvenienced me and it's still a net gain in readability, since main
actually means what it means. have my shell scripts set up to use either one for any repo I'm in automatically.
Honestly it's not even about convenience. As far as breaking conventions go, this one has none-to-minimal impact -- existing master
branches won't suddenly become invalid. But it's yet another instance of a subset of a subset of a subset of users getting to enforce their sensibilities for superficial reasons, and ultimately with zero effect regarding the cause they claim to represent; cultural and linguistic differences be damned.
I'd love to be more specific, but I don't want the comments to turn into a warzone.
At some point needlessly banning words just empowers bigots by letting them claim larger and larger parts of the vocabulary. Shouldn't we try to reclaim words instead, and deprive the words of their power? Just "banning" words, especially in cases such as this one when the connection to master/slave is pretty weak, actually increases the negative power of the words and I'd argue empowers people with malicious intent
This isn't like replacing the "master and slave" terminology
I struggle with SPI (serial peripheral interface). Two of the pins are MOSI/MISO (master-out-slave-in and vice versa). There are some alternative namings, but this one seems especially ingrained in embedded dev
YES, BASED
IN THIS HOUSE WE COMMIT TO MASTER
Master. I find this out of context fight against words pathetic.
My scrum master said that we need new tickets to update the git branches and pipelines to use main instead of master since master was a bad word.
I asked him what his job title was again and there was a pause.
Then he said we can't say that we are going to groom the code base anymore.
Switch from your scrum main to your scrum alt.
I'm gonna go ahead and assume your scrum main doesn't groom themselves.
If we are not grooming the codebase, are we then waxing it?
Or is it more eco-friendly to let the codebase grow wild and untrimmed?
I know someone with a master's degree from university.
Well, he cut me a golden master copy of the track, anyway.
I agree that it’s pathetic. I’ve never been a fan of virtue signaling.
In the other hand, “main” is easier to type than “master” (or “trunk,” for that matter). So I’ve made peace with it.
Trunk would be better because of all the branches.
Why master? main is much clearer
Why not change "walkie talkie" to "radio phone"? It is so much cleaner.
Because change for the sake of change always brings more work than what it saves.
Why change something that works and everyone recognizes it? Of course, if this debate was there when the standard was created...
I can work with either, but I cannot and will not forgive any deliberate changes from main to master.
If you have a main and a master branch in the same repo and you don't delete one at the very start of the project, God has abandoned the living bcz we're lost and he has forsaken all that is good in the world.
I didn't change any existing repo branches but I did change the default branch name in github back to master
I did that once... Because a script I worked with was hardcoded for it and was distributed as a binary...
Just use main
. I'm not bothered by either, but I'm not in the demographic that would be bothered by master
, so I use main
and STFU. It takes way less effort to switch to main
(if you haven't already) than to come up with all this rhetoric about why master
shouldn't trigger people.
I would argue that it's best/easiest to leave existing projects on master, and just use main for new ones. Either way I agree, people arw reactionary af about this issue
That's why we switched, on both closed- and open-source projects. There's just no winning an argument that puts you on the same side as racists.
At one point I was considering how, if someone asked on one of our public repos, I'd say "no" but at the same time post a receipt for a donation to the NAACP just to prove I wasn't racist. Thankfully I realized how stupid an idea that was before it came to that.
Performative wokeness is a cancer, man. Did any of this arguing and vitriol actually help any marginalized group in STEM? I really fucking doubt it.
Main.
Don't get me wrong, the whole debate is Microsoft just being performative (why not use your vast wealth to actually help people?). But honestly, putting the debate aside, "main" is just a clearer and more intuitive name.
I think it's the same with blacklist/whitelist -> blocklist/allowlist. It allowlist/blocklist actually says what it does in the name without using the idea of racism and white supremacy. I wish more software would just use these terms by default. (maybe some aliases for the old names)
The problem is that "master" means several things. There is Masters degree, master sword, master blacksmith, master copy, all of which have absolutely nothing to do with master / slave.
The Git "master" terminology came from "master copy". There's an email thread online where someone asked Linus Torvalds the origin and this is what he said.
The whole thing about it being about master / slave was some random uneducated person guessing, and they were wrong.
I agree that main is simpler and clearer, but it has nothing to do with racism.
canon
Love it 😆
The default branch for some projects is "production" since CD deploys on pushing to that branch
For new projects, main. My thought is that even if master is not offensive, since the industry has generally made the change, the only reason to stick with master is stubbornness or hating political correctness, neither of which aligns with my self-view so I'll use main and move on.
In general if people are genuinely hurt by the use of some words, I'm not sadistic so I'll avoid using them. From my perspective morality is the pursuit of the reduction of suffering, even if that suffering is internal.
It kills me that this take is so hard to find online.
Did I think calling the main branch “master” was offensive before this controversy? No, I’d never even considered it.
Does switching to calling it “main” impact me, like… at all? Also no. It’s like the lowest effort change to make.
If I can make my industry more welcoming to a more diverse group of people, that is a solid victory and way more important than the name of my primary git branch.
I mean, the problem people have with it isn't a name change or improving inclusivity. It's the fact that they feel like they are being bullied into doing something they had no input into in the name of inclusivity. What pisses people off is how, as soon as someone says "x" isn't maximally inclusive of some marginalized group, everyone has to change or else get called a categorically bad person.
For example, suppose you have a red hat that you enjoy wearing. You got it at wafflefest a decade ago, and it says "I <3 Waffles". Then one day, your boss sends out an email that no more red hats are allowed in the office because it might create an unwelcoming environment. You will, of course, be pissed off. Not because you can't wear your waffle hat anymore, but because your boss feels entitled to control the minutiae of you life like this. You'll think to yourself "fuck that guy, and fuck whoever brought up banning red hats in some corporate board room 1000 miles away. This is bullshit!"
People like their autonomy, and don't like being controlled. Doesn't matter if it is in the name of increased corporate profits, or inclusivity, or saving the bees, or dying of lung cancer. They don't care about the name of their git branch - they care that they feel like they are being forced to change it.
No one is offended by that word, at some point we need to stop wasting time on pointless debates and move on. If I start tweeting that I find "main" offensive are we going to have to find another name?
Don’t forget laziness. I have some projects that have been around forever and I am not changing it across my infra because I am lazy. I will do it next year…
Do you have any evidence that "the industry" has made the change? My personal experience says the opposite. Unless you mean "new repositories use the new default name" which says more about people simply not caring rather than anything else.
In general if people are genuinely hurt by the use of some words, I’m not sadistic so I’ll avoid using them
That's a sane position. Only issue is that this have nothing to do with the question, and the people that were the most vocal about this issue had no business talking about it in the first place.
Ultimately, git is flexible; beyond some potential local and shared automation, anyone can call their local branches however they want, regardless of other and servers. Personally, changing years of habits and tooling (that probably should not have hardcoded some names in the first place) is not worth following a change proposed by misled people.
master
I grew up with master, and main just feels weird.
Whatever the repo is setup with.
No one commits to trunk
anymore....
I think you are onto something. Especially Mastodon devs are losing so much.
Master. I find the whole "reasoning" behind the controversy absolute horseshit peddled by nontechnical people on the sidelines
Just that master doesn't actually makes much sense in most git workflows.
If you understand master like you would understand the master/slave relationship in old tech, then of course, master seems to make sense until you realize that there is no slave in that sense or in name. Additional, master is rarely doing anything but having release or hot fixes being merged into it. Arguably dev is the master of the branches.
In other words, master was always a bad name. It is silly to rename it because "racism" but it is at least equally silly to act like master is a much better name than "main" or "live" or "prod" or ... Fuck, the list is long.
Ding ding ding. Trend-hopping C-suites pretending to give a fuck because DEI or whatever.
ma<tab>
tabs Fedora
No gods no master branches
Nae king! Nae quin! Nae laird! Nae master!
Let's call it the kelda branch!
I always rename my branch to main. Because it's shorter? That's the extent of my reasoning. Thanks for coming to my ted talk.
dom
If it uses master
and it's too much trouble to get people to switch. It stays master
until we can coordinate.
If I'm starting a new project I use main
.
Why?
It doesn't take much to do and it avoids any misunderstandings or arguments and we've got work to do. I don't particular care if you guys are "stuck" on master
. If that's what it is and everyone wants to keep it that way, I don't have enough will to change it. If it's under my control, I will change it.
You know what else avoids arguments? Not hiring people who start arguments over token bullshit.
I will just say that things in tech change a lot in general. That's just the nature of it.
If I can do one small thing that makes people feel better, then why wouldn't I do it?
I don't necessarily see that as a connection to a measure of competency. It seems you do and you probably have good reasons to believe so and I would say that I haven't experienced that.
I see mostly people defending master starting arguments. I've never seen anyone pushing for main get even half as mad as some of the people coming up with a reason why it's stupid. Like, holy shit guys, just don't change it and move on, why be so mad about it?
I don't care which one you use, just don't change it once it's established. So many legacy Yocto projects got broken cause open source libraries changed their branch names.
I don’t care which one you use, just don’t change it once it’s established. So many legacy Yocto projects got broken cause open source libraries changed their branch names.
This was one of the arguments when the renaming was first proposed. "Just rename it, it won't break anything! It's only racists that want to keep the name!"
Sure, except for all the CI/CD scripts, release scripts, etc that all have "master" there and are now broken.
I know of a company that their entire CI pipeline was broken overnight because some "helpful" person renamed the branch to master but didn't bother checking out their pipelines...
I know of a company that their entire CI pipeline was broken overnight because some “helpful” person renamed the branch to master but didn’t bother checking out their pipelines
Sounds like the sort of simpleton that would find "master" offensive.
Trunk
I too am working on a repo that predates git.
I'm naming my production branch goshujin-sama
live / staging / dev
Last place of employment had develop
as the default branch. Actually quite liked it. (There also was a main branch, which only got merged into as part of the release flow, so might as well have called it release
, I suppose).
Anyway, IMO it communicated "volatile and subject to change" a lot more clearly than things like "head of main" etc
The pro versions: dev, rls
It takes 0.0001 seconds to fully auto complete to “develop” and “release” and removes any questions newcomers have on what they stand for.
Here’s the origin story in 2010
"Obey your master! Master!"
Imagine darth vader calling palpatine main
Obey your main
I use master in all my projects
I save my code as .txt files on my hard drive.
They follow the naming convention "project1", "project1a", "project1a1" and so on in consecutive logical order
I believe that's called goblin mode (production_code.final(2).txt)
both. but majority are master cause that's the default and I'm too lazy to change nor do I really care.
The real answer is whichever is easiest. If you've got a master branch and it's a pain to switch, then I wouldn't do it. If you've got a badass coder who is disturbed by the terminology, then I'd say to do it to keep the peace. It depends on the situation.
master.
I grew up with master before the master nonsense. It's ingrained in me. So i use that in my projects. Some projects i contribute use main, and i don't give a fuck. It just fucks up my memory muscle - but nothing that an alias doesn't solve.
EDIT: and btw, fuck github.
mainline
Zeus
Using master is stupid. Is your branch in charge of others? Is it more skilled than your other branches? Software engineering has too many crusty dorks that stick to their paradigms like it's their religion. Acting like it's their heritage to use outdated terms but also it doesn't matter so that's why they'll keep using it.
The name have nothing to do with being in charge of others, skill level, or anything, but, sure.
Personally I've come to hate main because it breaks habits easily. I'm working 75% of the time on master repos, but then I might need to do a quick edit on a main repo and suddenly my git checkout master doesn't work.
Or even copy pasting scripts from one project to another can easily break if you forget to change the branch
The reason behind the change is pretty stupid anyway (I'm against slavery but it shouldn't be treated like a slur still)
Release
No one messes with release for the "final" merge?
After that... Main.
Catch and Kill. Trap and Release. It's slavery all over again! We must fight back!
My repos use main because i guess that was the default, but i don't really care. I mean i also call my window manager layout master/stack and i don't see what's wrong with that.
Eh, I mix and match them..
I honestly don’t know, and I’m not at my PC to check. I assume it’s main, but with my ADHD I’ve never actually paid attention to that. All I ever remember are my branch names.
Develop
Is use develop
anyways. because main
/ master
is for deployments only. When it comes to starting a new project, I don't give a flying horseshit of a fuck. I use whatever git sets me up with and due to terminal auto complete it's ma
TAB either way. The way I experienced it, everyone with a strong preference towards either is an annoying shithat of a person who will be booted from my team the moment they start this debate.
main-master, with all branches being non-main masters. No slaves in my neighborhood.
For all the sudden word scholars here: there is no second word "master" that's spelled, pronounced, and written exactly the same as the other one but is entirely unrelated to the concept of master\slave. All modern meanings of the word master derive from the same root: magister, meaning an authority or teacher.
A "master recording" is the authority, the base copy from which all others are duplicated. They aren't called "slave" copies, although the primary use of the terms in computing did originally use those 2 words. Also as someone else pointed out, you don't even really make copies of git branches in the same way as audio so the term is misapplied.
Main is also a bad name, unless you're working on a solo project with only 1 main branch and some features. As soon as you start collaborating with other people, you should really have individual dev branches or "forks" (be honest, 90% of you aren't rawdogging git straight from the CLI, there's a forge website involved as hub) to work on, with an integration\testing "fork"\branch to combine work and a release branch for final code, with each discrete release tagged.
No gods, no kings, no masters!
personally I use emojis for branch names. it makes things way clearer.
🤡 is the master branch 🛩️🏢 is dev
Master make no sense. It fail to comunicate what role the default branch serve. Main is clearer, your default branch is the main one.
It's a master the same way that an original recording (the final version before mass reproduction) is called a master; mixing and processing the raw media clips into such a recording is called mastering. It's a convention that has existed long before computers were a thing.
All the people defending master-slave terminology in the comments 💀💀💀
Look it up, it was used in Bitkeeper that way iirc