In this blog post I am jotting down my learning notes from the Pluralsight Git big picture course by paolo perrotta.
What the Course is about
This course as the title suggests explains the big picture for Git. The course is well structured and explains the key concepts of version control and why Git. This course is rightly sized and gives an overview of why version control is needed and why git in particular in day to day developers work.
Understanding Version control
Version control systems are used to maintain the history of source code over the life-cycle of a project. A key point is version control is not a substitute for backups. having a history ensures that all developers can get a picture of how the software has evolved over the time. In today’s world, we don’t use our memory well, so having a history makes sure that we can track changes. Without version control, we normally user back up files with different names and timestamp. But this cannot keep with growing changes. Having a version control we can move back and forth between different version of code with ease. In fact version control is like having an infinite undo and redo.
Git is the popular version control system in recent times. The main advantage of Git is that, it is a distributed version control system. Git has both command line interface and proprietary and open source GUI interface also. The key functionalities of Git are:
- Creating / cloning a repo
- making changes
- committing changes locally
- pushing changes to origin
- revert back changes
Making Sense of Git
Some of the benefits of Git are:
- Its fast
There are some myths associated with git like:
- it is too heavy
- no locking concept
- no access control
Git has some shortcomings like:
- Not user friendly
- Not usual for binary files
Client server version control systems are based on local copy of files and locking and checking out changes. The main drawback is that there are lot of merging issues.
Git can be used from all the leading editors by using plugins and built in features. Github is a hosted service which can be used to host public and private repositories. Github also provides a issue management system. Most of the open source projects are hosted on Github. Git support the basic workflow for open source projects.