Branch management, merging, conflicts A "branch" is one of several histories of the project Each programmer works on theys own branch In a single directory a programmer usually hosts many branches No branch makes any reference to other branches Branches are only compared when needed Every branch is independent, but when merging There is no such thing as a main branch, like in SVN Actually, the concept of trunk is not applicable at all Git only merges local branches Everything must be already committed To merge external code, just commit it locally first No conflict can ever lead to information loss We are offered tools to move branches or change past history git rebase git rebase -i git commit --amend