|
|
|
|
|
by ursus_bonum
3374 days ago
|
|
This is such a classic example of not thinking things through. The graphical manipulation stuff sounds cool until you think about what happens when it causes merge conflicts. I mean the graph stuff is still cool but it does very little for the hard problems. The automatic committing for WIP and "magic" pushing/fetching sounds cool until someone switches branches and accidentally commits 3.1TB of junk files they left lying around and it automatically syncs to EVERYONE else on the project. People complain now that Git is "too complex" just wait until it's automagically doing shit like that. |
|
Another example is the VS Code "git sync" button. I'm never quite sure what's going to happen if I press it. Will my branch get merged with upstream? Or rebased? Am I going to end up with the working tree in the unpredictable state?
This is where the Python guideline "explicit is better than implicit" applies to git perfectly. Git already does a substantial amount of work under the hood with porcelain commands. There is no benefit of stripping git off the fundamental concepts like branches, remotes and staging. It doesn't simplify the conceptual understanding of git, but only obscures the git behavior.