Posso puxar apenas certos arquivos de outro repositório Git?
-
21-09-2019 - |
Pergunta
Por exemplo, suponha que eu tenha o repositório 1 e o repositório 2. o repositório 1 tem um arquivo /a/b/c/d
. Seria possível importar esse arquivo para o repositório 2 como /e/f/g/h
?
A razão é que eu quero obter mudanças de um ramo experimental de um repositório GIT diferente. Tentei fundir tudo, mas havia uma tonelada de conflitos (de todo tipo). Portanto, duvido que possa mesclar o ramo inteiro, mas gostaria de tentar trazer o máximo que puder.
Existe alguma maneira de fazer o que eu quero fazer, ou vou ter que recorrer à copiar arquivos diretamente?
Solução
Você pode obter arquivos do repositório remoto usando git archive
. Você pode então adicionar e comprometer os arquivos ao seu repositório. Essa abordagem não preservará a história de seu ramo. Ver Git Archive Docs para detalhes.
Se você quiser tentar preservar partes desse ramo experimental, você pode git fetch
seu repositório, e então git rebase
Seu ramo experimental em seu repositório, editando ou pulando cometidos com conflitos, conforme apropriado. Depois de ter um ramo limpo em seu repositório, você pode mesclar isso. Veja Git Rebase Docs
Outras dicas
Você terá que copiar o arquivo diretamente. O Git lida com repositórios inteiros, não arquivos únicos dentro deles.
Suponho que você possa definir o repositório 2 como um repositório remoto, buscar (não puxar) seus galhos e depois usar git checkout
Para pegar um arquivo dessa filial, mas essa solução pode ser confusa.