All check-ins, branching, merging all local, there is no need to be online.
Branching & Merging much simpler
Once online can sync with remote repository
No central server to back up. Everyone has a copy!
No filesystem modifications, no extra folders
Git
Extremely Fast!
No need to worry about access control or files being locked by other users
Each bug fix & enhancement on a new branch allows for code reviews before merge into master
GIT
Allows for easy patches eg./release goes out, start adding new features, hot fix required but can't release the un-tested features, you can have the release tagged, branch from that point and add the hot fix and release that and also merge that hot fix branch with master to ensure its applied to the next version
Small disk space requirements
Multi platform. Windows, OSX, Linux
Stashing - can stash changes before committing, change branches make modifications, commit, switch branch and un-stash without effecting commit history
GIT
Allows for easy patches eg./release goes out, start adding new features, hot fix required but can't release the un-tested features, you can have the release tagged, branch from that point and add the hot fix and release that and also merge that hot fix branch with master to ensure its applied to the next version
Small disk space requirements
Multi platform. Windows, OSX, Linux
Stashing - can stash changes before committing, change branches make modifications, commit, switch branch and un-stash without effecting commit history
GIT
It can be used in command line or GUI just like TFS
Visual Studio Git Plugin, SourceTree, Github for Windows, TortoiseGit
git-tfs allows you export all TFS history into Git repository
TFS
Centralised - have to connect to remote server to view history and do check-ins
Slow - wait for build to check in rather than something like Team City that can notify you if build fails
Licence Fees
Causes BSOD :)
TFS
Takes 6 attempts to check things in
Throws wobblies on who has what file
Makes files read only
Worse than Source Safe, Subversion, Sourcegear in my experience
DEMO
Benn setup Gitlab at http://192.168.100.144 and can browse the code and see what was changed in each commit
Look at new project to get url to it
Setup a new project in Visual Studio, initialize a git repository, add .gitignore file, add remote, add all files, commit, push
DEMO
Create new branch and make some changes and push, setup Merge Request, view changes and merge