O comando git checkout pode ser usado para atualizar arquivos ou diretórios específicos em sua árvore de trabalho com os de outra ramificação (branch), sem que seja necessário mesclar a ramificação inteira.

Isso pode ser útil ao trabalhar com várias ramificações de recursos (feature brachs) ou usar o GitHub Pages para gerar um site de projeto estático.

A página do manual git-checkout descreve como o comando git checkout não é útil apenas para alternar entre branches.

No git, um tree-ish é uma maneira de se referir a um determinado commit ou árvore. Isso pode ser um sha parcial ou os ponteiros de nome de ramificação, remoto e tag.

A sintaxe para usar o git checkout para atualizar a árvore de trabalho com arquivos de uma tree-ish é a seguinte:

git checkout [-p|--patch] [<tree-ish>] [--] <pathspec> ...

Portanto, para atualizar a árvore de trabalho com arquivos ou diretórios de outra branch, você pode usar o ponteiro do nome da branch no comando git checkout.

git checkout <branch_name> -- <paths>;

Por exemplo, você poderia atualizar um script em uma branch de um novo recurso sendo desenvolvido, “puxando” o arquivo específico da branch main.

# On branch main
git checkout new-branch
# On new-branch
git checkout main -- my_script.js
git commit -m "Update my_script.js from main"

É interessante ler a página do manual do git-checkout para conhecer as demais possibilidades que o comando trás, e entender sua versatilidade para lidar com questões pontuais no seu fluxo de versionamento e gestão do código fonte dos projetos de desenvolvimento de software.