Git is a Distributed Source Control Manager (DSCM), a piece of software that enables software developers to keep track of the code changes in a project progressively over time without relying on a centralised database. It was created by Linus Torvalds, more famous for his other major creation, Linux. It was a novel Open Source alternative to the existing SCMs, allowing developers from all over the world to collaborate in a new, dynamic fashion; even when they were unable to access the internet. As a result, it and other DSCMs have become the dominant tools of this nature in Open Source projects.
Every time a developer wants to share her bug fix or improvement with others in her team, she makes a commit which is a description of the differences between it and the last commit. This commit is labelled with a short comment describing in plain English the changes made for the benefit of the other developers. It is also labelled with the name and email address of the developer who made the commit.
This is where we start running in to problems. If you ever want to change your name on your commits, say you have been married, divorced or chosen a name more congruent with your gender identity, you have to make what is called a “destructive action”.
To try and put it simply, the author of a commit is tied in to the identity of the commit itself. If you change the author, it’s treated as an entirely new commit. Anyone who has grabbed a copy of your original commit and made subsequent changes on top of it finds themselves orphaned from the history of the project. To use a crude analogy, it’s like you rip the trunk of a tree out, while the branches are magically left hanging in the air, connected to nothing and isolated.
In practice this would be almost impossible for you to do. Even if you controlled the project, your contributors would have to rewrite all the changes they had made, potentially taking hundreds of hours depending on the size of the project.
Of course this problem has never been significant for the vast majority of the software developer community. Even in today’s day and age, the majority of people who get a name change are going to be married/divorced women. It has probably never crossed the minds of the creators of Git that this could be such a huge problem to a non-cis or non-male person.
There are a few workarounds to mitigate this problem, the most obvious being to grin and bear it. Unfortunately this isn’t an option for many trans* software developers who open themselves up to discrimination if they are forced to reveal their trans* status by disclosing their assigned at birth name. Women who have gone through divorce may find their surname from their marriage to be upsetting and want to disassociate themselves from it.
Another option is to use a handle/pseudonym. This is also fraught with problems. Even if you are able to predict your one day need for it, if you are developing in a professional capacity this can come across as unprofessional to many current and future employers.
This has personally affected me. I am now having to distance myself from a large and popular Open Source project that I co-founded and which was at least partly responsible for me getting my current job. Just another example of how a seemingly small, normative assumption can have profound negative effects on minorities.