Source code is difficult to make and subject to change. Sometimes your changes are not good and you have to revert changes and try something else. When you work in a team this becomes a significant problem. To track software changes professional developers are using a special software called “Version Control System” (VCS).
Source version control is very important for team work. Most projects involve multiple developers that work in a team. The team need collaboration and developers can work on different components of the same application. The interaction between components can change and can lead to defects in the final application.
Most popular version VCS:
A version control system has several concepts to learn before you can use them.
- Repository : is a central place where source code is stored
- Cloning : is a process of copy the repository to local computer
- Branching : is the process of working in a separated copy of software
- Synchronization : is the process of merging the code and getting updates
Cloud based SCM:
Normally a repository is local to a company. Large teams and open source software can use cloud based repository. Lately there are several most popular repositories that are well known in computer industry:
These organizations have also provided tools to maintain project source code and work items. Now any developer can start a project very fast and can invite other developers to join and work together on open source projects.
One of the most important aspect of software engineering is the ability to work in a team of developers. For this you need several skills that can be learn by practise.
What is Git ??
Git is a distributed version control system that is used for software development and other version control tasks. A version control software can store source code or text in a repository and track modifications in a multi user environment.
Git was created by Linus Torvalds in 2005 for development of the Linux kernel.
Why Git is so popular ??
Several features makes Git popular:
- data integrity;
- distributed workflows;
To develop a database you can work in a large team. For this you have to understend some terms and tools before you can colaborate with your team. Most of the companies are using GIT to control versions of software.
First, we need to introduce some Git-specific terms which may have different meanings in other version control systems such as Subversion or Mercurial.
Git is a distributed version control system. It is used to store source code that is based on text files organized in folders and sub-folders. This structure is named Git’s working tree. It is the directory where you can edit files and it is always part of a repository.
Git can have local repositories that have a working tree and so-called bare repositories, used on servers as central repositories that don’t have a working tree.
To use Git you have to install Git software on your computer. This consist of Git client for your operating system and user interface tools to aid you visualizing the code.
You can download Git for Mac, Windows, Linux or Solaris:
Once you download the software read documentation:
Git commands are complex and difficult to master. For improving productivity you can use a graphical user interface (GUI). This is a program that may aid in your quest:
I have installed on my PC these two:
- Collab GitEye
- BitBucket SourceTree
More tools: https://git-scm.com/download/gui/linux
On server you can have 2 options. One is to host on the cloud and second is to host on your own server. Most popular cloud services:
You can install GitLab server on your own environment. This will allow creation of very large projects and unlimited number of users in a private environment behind your firewall.