A version control system is a repository, or a place where things are stored, and in this case, the things are files on a computer. Some people make the mistakes of naming files too similar to others and that can be a serious problem when the person has a ton of files on their computer, causing it to be completely unorganized. Version control systems allow someone to have multiple versions of a file with different names and date. Also, multiple people can be working on a file at once, having their own version of it on their computer. This would be a huge help to many group projects. It will keep note of who and when someone changed a file, what is new, and merge the changes if you want. You always have the ability to look back on an older version if you like it better and none of them will ever go away or disappear. This interested me because it makes me realize that Google Docs is a version control system! It is so helpful when my peers and I are working on a project from our homes and can work on a file at the same time. It is relevant to this course because this repository can help when people who do this for a living need to keep their work as well as past versions.
Git is a version control system but it is definitely different from the rest. Git is special primarily because it thinks about its data in a different way. Git takes a snapshot of your files when you commit/save them. Other version control systems are file-based and only save new versions of files when they are changed, not as a whole. Git just changes the snapshot of the files as they change yet keeps them altogether no matter what. This interested me because I kept asking myself what makes Git different than others? Why did my professor decide to use this VCS? It will be helpful to know why she chose it and how it’s different than others.
In a version control system, there are two different types of repositories: remote repository and local repository. A remote repository is located on a server and has the ability to be shared amongst multiple team members. A local repository is for an individual user on their own laptop or computer. Git is an example of a remote repository because multiple people are able to work on the same project. You can ‘add’ and ‘commit’ in a local repository, but you then can ‘push’, or copy the backup, in a remote repository. It is interesting to know that there are two different repositories and that different actions are done on each. It is helpful to know the repository we are using or making changes to when using certain actions/commands.
There are local, centralized, and distributed types of version control systems and their differences have to do with how and where the files are kept. Local VCSs keep the versions of the file in a database on the computer so the person can go back or add up the patches. Centralized VCSs keep a database of the versions on a server where multiple computers have access to it. Distributed VCSs have the database of versions on the server as well on each of the computers in the group. This is interesting to know that there are multiple version control systems that store versions of files in a different way. It is relevant because I will encounter different kinds and need to know how I am connected with others and if we have access to the same files.
Git is simple because you are able to just use local files and resources. You don’t need to use a server and get your files from there because the files are already on your computer. You have your database where you can look up all of the versions of a file, including one you made such a long time ago. If it is on your computer, then you can access them even if you don’t have network connection like you would if you needed to get them off a server. It is interesting because Git allows me to have access to my files and revisions in any situation, which makes everything simple. It is relevant because I know now that I can easily access files on Git and that it is the best in version control systems.