3 ms·
It's not this simple. Git's porcelain is very unintuitive, but the underlying model is not. Once you understand the model, memorizing the commands is a relati
by dasil003 8y ago
It's not this simple. Git's porcelain is very unintuitive, but the underlying model is not. Once you understand the model, memorizing the commands is a relatively minor annoyance. But even if you fixed the porcelain there is essential complexity in understanding and utilizing the underlying model. To further clarify would require simplifying the model or features exposed, reducing the power of git as a tool.
There are those who say you should never rebase as a form of simplifying git, but people who follow that workflow have much much messier histories than those who know how to rebase properly. A well-curated history of well-explained atomic commits has incredible value, far outstripping the cost of maintenance on a long-lived project.
Git is a professional tool for software engineers, it has severe short-comings for non-coders, but as a software engineer learning it well will magnify your value.
- smacktoward 8y agoIf the Git developers have made an explicit decision that it's impossible to simplify the interfaces without losing some important functionality, hey, it's their software, that's their prerogative. But if that's the case, then people who have trouble understanding the interface shouldn't be called dumb, or chided for "not understanding the model," because it means the model is going to be too complicated for some people to understand. Either Git is intended to be a tool anybody can pick up and use, in which case it's shameful how thoroughly ignored widespread complaints about the UI have been; or Git is intended to be a tool for a select priesthood of Enlightened Masters, in which case it shouldn't be promoted to the unwashed masses. You can't really have it both ways. > Git is a professional tool for software engineers Lots of tools for professionals of all kinds take the time to protect their users from inadvertently harming themselves through misuse. Cars for commercial drivers aren't sold with a set of wheel chocks in place of brakes, and if you argued that they should be because they're meant for professional drivers who ought to know better than to walk away from their vehicle without setting the chocks first, you'd earn yourself a lot of funny looks.
- krinchan 8y agoI got to "There are those who say you should never rebase as a form of simplifying git" and had to exert a lot of self control not to shout "YOU CAN PRY GIT REBASE INTERACTIVE OUT OF MY COLD DEAD HANDS!!" I don't understand how anyone can live without rebasing their branch on master so their PR is a fast-forward merge and squashing their 4 days of WIP and Changing Computers commits into one sane commit. Let's not even mention the fact that they introduce all those in-between commits where your unit testing is broken. Our team has a very strict rule that every commit on master has passing unit tests and all merges to master (within reason) are fast-forward merges. We also allow force pushing to your feature branch to encourage using git as a decent backup for your WIP and eventually the cleanup before merging. As such, newbies get taught the basic rebase commands. This requires talking about the underlying model of git.