Git Version Control - UGuntupalli/GeneralWorkflow GitHub Wiki

Version Control is based around the concept of being able to keep track of the changes that are being made whether it is in files/code. It can be broadly categorized into 2 groups namely:

  • Centralized
  • Distributed

Centralized version control works in a client-server relationship where there is one centralized server that holds the repository or the source of truth which provides access to several different clients simultaneously making it almost similar to FTP. Subversion is a popular example but it has its own set of pros and cons. It is a little older and is disadvantaged by its continuous need for access to the server.

Distributed version control which is the newer category is a little harder to understand, but serves our purposes well. Popular clients are Git and Mercurial. We will be using Git for all our needs.

Git is integrated into many of the advanced IDE's we use today like Pycharm, VSCode etc. and this is a huge convenience. Other IDE's like Jupyter and Spyder do not offer git integration and require the use of special command line or GUI clients like Sourcetree or Git-SCM. Even though the ability to perform Git actions is integrated into IDE, a client still needs to be installed on your machine to help the IDE facilitate these Git actions. To install a Git client like Git-SCM, download a copy of Git-SCM from here and accept the defaults.