Eu tenho um arquivo foo.txt
no branch A
e quero fazer check-out foo.txt
do branch B
no índice. Na linha de comando, eu faria o seguinte:
$ git checkout B -- foo.txt
Eu quero ser capaz de fazer isso no magit, registrando, encontrando o commit em que estou interessado (por exemplo l o B
), encontrando foo.txt
e executando algum comando, mas não consigo descobrir como fazê-lo.
Respostas:
A partir do magit 2.11.0, isso é possível diretamente do distribuidor de redefinição (
X f
e você pode especificar a revisão e o arquivo):Isso pode ser feito programaticamente dentro do magit usando o
magit-file-checkout
que aceita uma especificação de versão e o nome do arquivo (graças à solicitação de recurso do @Emoses e à implementação do @Kyle Meyer). Anteriormente, a função era nomeadamagit-checkout-file
(da v2.3.0 - v2.9.0).fonte
magit-checkout-file
agora está obsoleto. Use emmagit-file-checkout
vez disso.Não conheço uma maneira embutida de fazer isso.
Supondo que você esteja no ramo A, outra abordagem seria diferenciar o ramo B (
d r ..B
) e, em seguida, mover o ponto para o arquivo no qual você está interessado. Pressionara
aplicará essas alterações na árvore de trabalho (e não no índice).Eu tenho um comando na minha configuração para redefinir ou retirar um arquivo de uma revisão, mas, no estado atual, ele não se encaixa exatamente no que você está pedindo, porque não oferece um bom padrão de revisão quando estiver no Magit Revision modo.
fonte