What is a branch? A branch is a reference to a specific commit. Each commit tracks the previous commit, forming long chains of data packets, diffs, that together can be reassembled into data. Every time you make a new commit, the branch starts pointing at this new commit, and the commit remembers the previous one. Although a commit history can be modified and revised, doing this with commits that have been pushed to other repos is dangerous and leads to history conflicts.
- Git is, unlike TFS or svn, a decentralized version control system.
- Branches are much more lightweight, compared to TFS, and used in a different way.
- Many possible workflows, eg merge vs rebase.
In TFS, multiple people working on the same branch can get hairy fast. Not so much in git. But most git resources recommend making a lot of branches.
- rebase -i
- cherry-pick
- add -p
- diff --stat
- stash
- bisect
- tag