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.
Quando <paths>
ou --patch
são fornecidos, o git checkout não muda de branch. Ele atualiza os caminhos nomeados na árvore de trabalho a partir do arquivo de índice ou de um chamado <tree-ish>
(geralmente um commit)…O argumento <tree-ish>
pode ser usado para especificar um tree-ish específico (ou seja, commit, tag ou árvore) para atualizar o índice para os caminhos fornecidos antes de atualizar a árvore de trabalho.
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.
Comentários