Eu usaria git restore
(disponível desde o git 2.23)
git restore --source otherbranch path/to/myfile.txt
Por que é melhor do que outras opções?
git checkout otherbranch -- path/to/myfile.txt
- Copia o arquivo para o diretório de trabalho, mas também para a área intermediária (efeito semelhante como se você copiasse esse arquivo manualmente e o executasse git add
). git restore
não toca na área de armazenamento temporário (a menos que seja solicitado por --staged
opção).
git show otherbranch:path/to/myfile.txt > path/to/myfile.txt
usa redirecionamento de shell padrão. Se você usa o Powershell, pode haver um problema com a entrada de texto ou você pode obter um arquivo quebrado, se for binário . Com a git restore
mudança de arquivos é feito tudo pelo git
executável.
Outra vantagem é que você pode restaurar a pasta inteira com:
git restore --source otherbranch path/to
ou com git restore --overlay --source otherbranch path/to
se você quiser evitar a exclusão de arquivos. Por exemplo, se houver menos arquivos do otherbranch
que no diretório de trabalho atual (e esses arquivos forem rastreados ) sem a --overlay
opção git restore
, eles serão excluídos. Mas esse é um bom comportamento padrão; é provável que você queira que o estado do diretório seja o mesmo de otherbranch
, não "o mesmo, mas com arquivos adicionais no meu ramo atual"