(apenas para fusões de avanço rápido)
Resumo
$ git fetch . develop:master
Este mestre de avanço rápido para desenvolver sem check-out.
Explicação
Digamos que estejamos trabalhando em um branch de desenvolvimento que está à frente do master em vários commits. Portanto, nossa história é mais ou menos assim:
Agora queremos mesclar o desenvolvimento com o mestre para receber isso:
A maneira usual de fazer isso seria:
$ git checkout master
$ git merge develop
Mas faz com que o git mude o diretório de trabalho duas vezes, embora o resultado final seja idêntico ao anterior ao check-out do master.
Em alguns casos, isso pode ser inaceitável, por exemplo, temos um grande repositório, então os checkouts são demorados ou nosso compilador depende de carimbos de data / hora e pode pensar que muitos arquivos estão sujos e precisam ser reconstruídos. Portanto, precisamos de outra maneira.
Suponha que temos um clone de nosso repo. Podemos buscar ref. De desenvolvimento de clone para mestre . De acordo com os documentos, a sintaxe de busca é
$ git fetch <repository> <src>:<dst>
The remote ref that matches <src> is fetched, and if <dst> is not empty string, the local ref that matches it is fast-forwarded using <src>.
Portanto, se executarmos , o master será acelerado para desenvolver .$git fetch clonerepo develop:master
Mas <repository>
pode ser um URL, incluindo um URL local, por exemplo, ‘/ caminho / para / repo /’. E como ‘.’ é o mesmo que ‘/ path / to / current / repo /’, podemos usar nosso próprio repo em vez de um clone:
$ git fetch . develop:master
Respostas relacionadas:
fatal: recusar-se a mesclar histórias não relacionadas