O que é uma branch?
Branches ("ramos") são utilizados para desenvolver funcionalidades isoladas umas das outras. A branch master é a branch "padrão" quando você cria um repositório.
Trata-se de uma linha de commits separada, e que pode ser utilizada para desenvolver funcionalidades independentes. E, com branches separados, podemos evitar que o código de uma funcionalidade interfira em outra.
Consistem em ramificações de um trabalho, podendo existir duas (ou mais!) linhas de desenvolvimento distintas e independentes entre si.
Permite separar os ramos de desenvolvimento, para sabermos exatamente no que cada um está mexendo, e para que não haja interferências no código compartilhado.
Por padrão, se executarmos git branch no Git Bash, teremos um único branch (master). No entanto, poderemos criar outros. Por exemplo: no caso de trabalharmos somente no título, utilizaremos o comando "git branch titulo", que criará este branch, embora tenhamos que mudar para ela manualmente, com "git checkout titulo".
git checkout -b nomeDaBranch: cria um branch e já passa para ele.
Unindo o trabalho: Merge
O comando git merge nomeDaBranch fará com que o Git automaticamente crie um commit com o branch atual e todo o conteúdo de nossa branch paralela.
O git merge gera um novo commit, informando que houve uma mescla entre duas branches.
Quando dermos um "Enter", será criado um commit de merge, ou seja, de junção de duas branches.
Ou seja, utilizar: "git checkout master" e, na sequência, "git merge titulo". Desta forma, colocaremos o HEAD na branch master, ou seja, faremos com que o nosso código esteja no estado que o deixamos com o último commit na master. Depois, uniremos o trabalho da branch titulo com a branch atual (master).
Atualizando a Branch
Em algumas situações, gerar um commit a mais (de merge), dependendo da estratégia utilizada para gerar os commits, pode acabar atrapalhando ou "poluindo" o log.
O comando git rebase nomeDaBranch faz com que o Git pegue os commits na branch nova, atualizando a master, que possui todos os commits contidos na branch nova, além do commit que havia nela mesma. Deste modo, geramos uma única linha, sem confusões.
O git rebase não gera um commit de merge, simplificando o nosso log!
Ou seja, o rebase atualiza a branch, mantendo o trabalho dela como sendo o último, para que não se gere este tipo de confusão. Com isso, temos as correções realizadas tanto no título quanto na lista.
O merge junta os trabalhos e gera um merge commit. O rebase aplica os commits de outra branch na branch atual. Com isso, evitamos os commits de merge. Há uma longa discussão sobre o que é "melhor": rebase ou merge. Estude, pesquise, e tire suas próprias conclusões.