Git has been generating a lot of buzz in recent times. It is slowly replacing TFS everywhere. Even Microsoft switched “Windows” to Git.
Why Microsoft spent 3 months to move 350 million files to Git?
Was it worth moving the 300 GB size repository?
Why Microsoft abandon its own version control ?
What is Git?
According to git documentation
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git is just re-thinking version control. The difference between Git and TFS is in how they version control. Understanding the benefits of Git will make it easier to transition.
Git vs TFS:
Git is like an Optical mouse and TFS is a trackball mouse. They serve the same purpose but the difference is in the experience. Optical mouse is smoother than trackball mouse because of its superior laser technology. Laser technology has no moving parts and works at the speed of light. Its faster to operate Graphical interfaces with optical mouse.
Similarly, Git is better than TFS because it uses superior file tracking technology. Git hashes files to track any changes. Hash based comparison is faster than line based comparison.
Git is lightweight. Single local path will point to all branches. Switching between branches is lightening quick. You have to try it yourself to believe it yourself. It’s the Tesla of the cars.
Below is a Microsoft tutorial to understand in detail.
Version controls types:
Archives various versions of a file on your local machine. RCS is the most popular local version control.
Maintains file versions on a central server. More than 1 developer can access the copy. Local changes are immediately synced up to server. Server is always the source of the truth. TFS is the most popular centralized version control among .NET developers.
It is a combination of local and centralized. Developers check-ins are versioned to local copy without worrying about other. Only on pushing to server or pulling, are the local files synced upto the server. Git is the most popular Distributed version control system. Git is the open source protocol. Github and GVFS are the adaptations of the open source Git.
Depending on your companies need you can define workflows in git. Here is the simplest one to get started.
- Create a master branch in Git.
- Add a .gitignore file to ignore libraries, and packages.
- Create feature branch from master for your changes.
- Write code.
- Commit code.
- Push committed code to your feature branch.
- Create Pull request to merge into master.
- Send Pull request for Code review.
- Merge approved Pull request into master.