After a bit of #git talk with different peeps, I am just gonna say it. I am pretty sure it has been said before, but I am sure it deserves to be repeated.

Git is overly complicated, and we suffer as a result.

"You just need to learn it b...", no, I don't, I know git quite well. I have been using it for about 15 years, have been a "go to" person for "heck I don't know what I just did, halp please?" at some of the places I have worked.

I have explained, taught, set guidelines and conventions for use and all such for teams at different companies.

Generally, I would say I have spent way too much time on a tool, given what the tool is supposed to give.

The reason git is halfway usable, are the tooling ecosystem. But the complexity is still offer, and the possibility to mess up, ever present.

Most git repositories have a useless line of history that looks like the London subway map.

Git is a horrible tool, for what we use it for. It might be a grand tool for some usages.

That is not the issue. (cont...)

(... continued) So basically, if you are a beginner in git and wonder "am I missing something?", that is quite ok.

If you feel terrified of messing up, know that most everyone have been there.

If you wonder "could this have been solved easier? Is git making things more complicated than they need to be" the answer is also yes, it is, for what we tend to use it for.

I am not going to say there is no need for a tool like git. And distributed version control sure is a lot better than centralized for a lot of usage.

I do not miss SVN.

But, wish we had settled for something a bit between SVN and GIT, with what most everyone need, but a sane feature set that was named and explained related to how we use it.

Amend, squash, rebase, cherrypicking etc are all good things, but are often explained in complex ways.

Rebase is better than merge, but the name and explanations are often mysterious and... well... bad.

We deserve a better tool, but techy peeps often love complex stuff, so there we are.

@lettosprey "git is overcomplicated" but refuse to explain what it is complicated and how to make him simpler

@snakebyte85 Most teams have need for something to handle the version history of their project, and will need a tool with a set of features to give this.

When people use as much time to learn a tool that is supposed to solve a need that is not all that complicated, something is off.

I have seen experienced devs mess up in the most bizarre ways, that is explanation enough for me.

It is made simpler by narrowing the feature set, making the commands easier and more to point of what we use them for.

Anyway, my intention was not to solve the problems with git and give indept explanation as to what causes the complexity, but to help ease the pain of those that learn it and stuggle with it, because I am pretty dang sure they do not need to be explained that it is complex. They already know.

@lettosprey every single fucking dev wants to have a problem solved without putting their brain into it

Logging, deploy, version history, monitoring, build system, containers, kubernetes, linux servers.

Surprise: this is not how programming works. If you want only to deal with your code, choose some fancy stupid expensive closed source dev environment and be happy with it.

Otherwise you need to learn how to use the tools you are using FOR FREE

Deal with it

@snakebyte85 If you think that kinda rhetoric is gonna work on me, I am sorry.

I have way too much experience to take the "deal with it!" approach.

We use tools. We sometimes use complex tools. We depend on complex tools because we need to use them to solve complex things.

Our focus needs to be given to what we need to do to solve the tasks we are given, and to understand the tools we need to solve this.

I want to use my brain for solving problems.

Not spend a lot of time on complexity in tools that gives absolutely no value from that complexity.

I have been through a lot of history of complex frameworks that was later replaced with a simpler framework that did everything we ever needed from the first one to know complexity does not always mean added usability.

If you are not willing to look at what you use and think "does this complexity give me something, or does it just add difficulties", you will never use your tools correctly.

You will flow into a needless mess of overly complicated solutions.

Why Don't I Like Git More?

Where we are with git and if alternatives exist