Is it common that developers still have issues with git after using it professionally for a couple of years? Admittedly, I still have trouble remembering the commands to do what I want (hello, rebase --onto A B C), though :P.
Is it common that developers still have issues with git after using it professionally for a couple of years? Admittedly, I still have trouble remembering the commands to do what I want (hello, rebase --onto A B C), though :P.
The phenomena you describe is known as the Curse of Knowledge [1]
Wikipedia gives an example: A knowledgeable professor might no longer remember the difficulties that a young student encounters when learning a new subject for the first time. [2]
> Twenty minutes later he returned, smiling, and began: "Yes, it is obvious that..."
A professor's main job is not to teach. It's publishing and getting funds into the university.
Once the mind had bootstrapped itself to a concept, it is very hard to empathize with your past self unless you took cares to document the difficulties while still in the confused state, articulating as much detail and as many fallacies encountered as possible.
I always liken it to Wittgenstein's analogy -- don't throw away the ladder after having climbed up upon it!
As someone who has worked on developer tooling, including building a custom git client at a former job - yes.
Most people learn a few specific workflows not conceptually how things work under the hood.
Visual editors like GitKraken, Submlime Merge, Sourcetree, etc, have made this much better but there's still a big gap.
But writing software, tracking your changes, being able to back out your changes and getting your changes integrated into a code base should be as low activation energy as possible to be productive.
But again, git wasn't created for "you and me", it was created by one guy for his project, the fact "mere mortals" are using it is kind of our fault.
Squashing, dropping commits, rebasing. Even interactive rebase can be done in a few clicks.
I sometimes pop up IDEA to do some non-trivial cleanup in a repo. Even if relatively fluent with the command line, it saves me a lot of time.
I work at a company where every developer uses Sourcetree, a GUI for Git. I don't really have a need to remember Git commands (and what arguments they take) anymore after using a GUI. For me, it is sufficient to know what Git commands do without knowing the semantics.
Basically, developers rebase all the time on their own branches, and rebase over their target branch (fixing conflicts) so that the PR is fast forward.
Agree on the git model thing, I feel like I have a reasonable idea of how git functions under the hood now, so I can figure out what most operations should do, even if I haven't used them before.