

In the context of git, the word "master" is not used in the same way as "master/slave". I do not believe that we need to find and remove all instances of the word "master" because of particular cases that are problematic. Some other words and phrases are also problematic because of their history. I fully agree that the "master/slave" terminology is inappropriate, and we should strive to change to promote inclusivity. NET Core, Xamarin, and Unity applications on Windows, Mac, and Linux.
Create a branch from master git code#
Sponsor: Have you tried developing in Rider yet? This fast and feature-rich cross-platform IDE improves your code for. Hope this helps! Other good names are latest, trunk, and stable! UPDATE! As of Git 2.28 you don't need an alias as above, as there is a new config option called init.DefaultBranch.

( NOTE: This is no longer needed, set below) git config -global alias.new '!git init & git symbolic-ref HEAD refs/heads/main' You can add an alias " git new" that will default to whatever starting branch you like.
Create a branch from master git update#

TL DR in conclusion: git branch -m master main This is because -m is -move and all your reflog is unchanged! NOTE: For more complex repos also check your protected branch rules. However, usually unless your CI explicitly calls for a branch by name, changing master to main will "just work!" The last thing to think about is if you have a CI/CD, GitHub Action, Azure DevOps pipeline or some other build system that pulls a specific branch. I can also update the tracking branch manually as seen here, but if you use git push -u origin main it'll do both. Now I just need to change my default branch in my GitHub settings for my repository. Another great option for your main github branch is "latest." The goal is to just be unambiguous. NOTE: Changing the default branch to "main" also has the benefit of starting with "ma" so that autocomplete muscle memory still works. Remote: Create a pull request for 'main' on GitHub by visiting: I'll just "git branch -m master main" and then push it back! Remember that -m is -move so your history isn't changed! Even better I can " git push -u origin main" to set the upstream at the same time. I have had dozens of git repositories that have 'master' as the main branch. So we see that while the word master doesn't always connote slave, for many, it's evocative via basic word-association and they just don't want to look at the word on their prompt all day. Git likely uses master in the context of "master copy" or "master recording." UPDATE: There is Good analysis of the whole main branch convo in the Git Rev News: Edition 65. You might say, "I'm all for not using master in master-slave technical relationships, but this is clearly an instance of master-copy, not master-slave." The Internet Engineering Task Force (IETF) points out that "Master-slave is an oppressive metaphor that will and should never become fully detached from history" as well as "In addition to being inappropriate and arcane, the master-slave metaphor is both technically and historically inaccurate." There's lots of more accurate options depending on context and it costs me nothing to change my vocabulary, especially if it is one less little speed bump to getting a new person excited about tech.
