Git

What is Git?

What is Git?

What is Git?

Today most software development projects are collaborative efforts. These projects can have hundreds or thousands of people working on them. So keeping track of changes is a necessity for smoother collaboration. Git is an open-source distributed version control system that keeps track of software assets and helps run more efficient development processes.

What is a Version Control System?

When developers are working on a software, they need to keep track of their changes. A version control system (VCS) remembers the versions of the software as it moves through the various stages of development. Working with a version control system has the following benefits:

Git - The Distributed Version Control

Initially, most version control systems were centralized. In the centralized model, the version control information like authorship, date, time, and modification information would be maintained in a centralized server or database. The problem with this model was that the development teams would be restricted by the power or traffic of the central server. When the central server went down, the whole system would be at a standstill.

In a distributed version control system (DVCS), the version information is maintained with every copy of the code. It allows peer-to-peer sharing. There is no need for a centralized repository (even though it's possible to set one up).


Short History of Git

Git started in a bit of controversy as an act of revenge. In 2002, Linux community started to use the proprietary distributed version control system BitKeeper for free. But in 2005, the relationship between the Linux community and BitKeeper broke down when the free-use status was revoked. So Linus Torvalds, the creator of Linux, started to develop Git as an open-source product. That year, the first version of Git was released. Today Git is the most popular version control system.

Pros and Cons of Git

Git is a simple and powerful distributed version control system with the following pros and cons:

Pros

Performance: Most development teams move to Git for the performance benefits. Commits, branching and merging is faster in Git than centralized version control systems like CVS, SVN or Perforce. Also, the distributed nature of the software makes it easier for developers to share work peer-to-peer. This process is faster than getting the code from a central server.

Security: The integrity of the code is easier to verify on Git. It uses SHA1 cryptographically secure hashing. The hashes are unique to each modification. If anyone changes a modification, the hashes will not match. This property of Git makes it harder for anyone to sneak in code changes surreptitiously.

Flexibility: Git was designed to adapt to any workflow. Older version control systems are more restrictive. But Git gives your team more leeway. You can even create a centralized workflow or integrate with other version control systems to make your legacy systems work.

Cons

Harder to Learn: Git concepts are not always intuitive. Other version control systems take a more user interface based approach. Git community tends to prefer the command-line. So it's more challenging for non-technical users to learn.

Nostalgia for Centralized Version Control: Businesses are sometimes hesitant about using Git because there is no centralized control. But if you need a centralized repository, you can always design a workflow to implement it.


Conclusion

Git has risen in popularity due to the value it adds to any development team. Even if you are working alone on a project, having a reliable history can save you a lot of time. Git is a free and helpful tool for any software development project.

Further Study:

Git Website
Git Basics
GitHub - Git Hosting Site
BitBucket - Git Hosting Site

References:

Tam Ekran Linux Uygulamalarında ve Oyunlarında OSD Yerleşimi Nasıl Gösterilir
Tam ekran oyunlar oynamak veya uygulamaları dikkat dağıtmayan tam ekran modunda kullanmak, bir panelde veya görev çubuğunda görünen ilgili sistem bilg...
En İyi 5 Oyun Yakalama Kartı
YouTube'da oyun akışlarını hepimiz gördük ve sevdik. PewDiePie, Jakesepticye ve Markiplier, oyun deneyimlerini yükleyerek ve izleyicileri en yeni oyun...
Linux'ta Oyun Nasıl Geliştirilir
On yıl önce, pek çok Linux kullanıcısı en sevdikleri işletim sisteminin bir gün ticari video oyunları için popüler bir oyun platformu olacağını tahmin...