Hands-On Software Engineering with Python
上QQ阅读APP看书,第一时间看更新

Git

Git is, by a significant margin, the most popular SCM in use at present. It is a distributed SCM system that keeps local branches of code bases and other content very inexpensively, while still providing the ability to push locally committed code into a shared central repository that multiple users can then access and work from. Above all else, it's capable of handling a lot of concurrent commit (or patch) activity—not surprising since it was written to accommodate the Linux kernel development team's efforts, where there might be hundreds of such patches/commits at a time. It's fast and efficient, and the commands for basic functionality that covers most day-to-day needs are fairly easily committed to memory, if using the command line is the preferred approach. 

Git has more functionality outside the normal commands and processes than in those processes themselves, that is, there are eight or nine commands that probably encompass the fetch/edit/reconcile/commit steps noted earlier, but Git has 21 commands in total, with the other 12-13 providing functionality that is less commonly needed or used. Anecdotal evidence suggests that most developers, unless they are working on projects over a certain size or complexity, are probably closer to the end of the spectrum that these folks are at:

There's no shortage of GUI tools for Git either, though many IDEs, whether in an effort to minimize context switches, or for some other reason, provide some sort of interface to Git, even if it's through an optional plugin. The best of those will also detect when problems with some process (a commit or push, for example) crop up, and provide some instruction on how to resolve those problems. There are also free standing Git-GUI applications, and even integrations with built-in system tools such as TortoiseGit (https://tortoisegit.org/) , which adds Git functionality to the Windows File Explorer.