Posted Dec 22, 2005 0:02 UTC (Thu) by iabervon (subscriber, #722)
[Link]
There's no reason to learn to do a lot of complicated things that somebody else has thought of. Once you have a good familiarity with the commonly used scripts, you can look through the documentation for the executables to figure out how the scripts work, and then, when you have something that's unusual that you want to do, it's pretty easy to use the plumbing commands to do it by hand, and then you can write a script.
But the neat thing about git is that the complicated things I do can be particular to my usage pattern, and I can write support for them without bothering the 90% of users who want different unusual features. (AFAICT, I'm the only person who uses multiple working trees with a single repository that they're symlinked to; also, I've got a script to rewrite private history that I haven't sold anyone else on yet). The nice thing is that your version of git doesn't need to support the same user-level operations that mine does for us to work together without being aware that the other is using special commands, so git doesn't get as much bloat as it would if everybody had to agree on a version.
If there are particular examples from my list that you'd like explained or if you want to beta-test my history rewriting script, let me know. I was sort of rambling and hit a bunch of obscure operations as examples of things that I like, so I don't really want to explain all of them if you only actually want to do a few of them.