Eu tenho 2 repositórios locais git, ambos apontando para o mesmo repositório remoto.
Em um repositório git, se eu fizer git format-patch 1
, como posso aplicar esse patch ao outro repositório?
Nota: Você pode visualizar primeiro o que seu patch fará:
Primeiro as estatísticas:
git apply --stat a_file.patch
Em seguida, faça uma corrida a seco para detectar erros:
git apply --check a_file.patch
Por fim, você pode git am
aplicar o seu patch como uma confirmação: permite assinar um patch aplicado.
Isso pode ser útil para referência posterior.
git am --signoff < a_file.patch
Veja um exemplo neste artigo :
No seu log git, você encontrará que as mensagens de confirmação contêm uma tag "Assinada por". Essa tag será lida pelo Github e outros para fornecer informações úteis sobre como o commit terminou no código.
git am < somepatch.patch
produz "fatal: nome de identificação vazio (para <>) não permitido". Alguém pode me explicar por quê?Author
cabeçalhos ruins no patch e / ou você não fezgit config user.{name,email}
.git apply --check
dizpatch does not apply
egit apply -3
dizrepository lacks the necessary blob to fall back on 3-way merge.
No git, rebasing commits é uma brisa; mas como as pessoas refazem seus patches sobre o código atualizado?fonte
Ou, se você está chutando a velha escola:
fonte
Primeiro, você deve tomar nota da diferença entre
git am
egit apply
Quando você está usando,
git am
geralmente deseja aplicar muitos patches. Assim deve usar:ou apenas:
O Git encontrará patches automaticamente e os aplicará em ordem ;-)
UPD
Aqui você encontra como gerar esses patches
fonte
git apply
.. e em--reverse
:-) 👍Se você deseja aplicá-lo como um commit , use git am .
fonte
Se você estiver usando um JetBrains IDE (como IntelliJ IDEA, Android Studio, PyCharm), poderá arrastar o arquivo do patch e soltá-lo dentro do IDE, e uma caixa de diálogo será exibida, mostrando o conteúdo do patch. Tudo o que você precisa fazer agora é clicar em "Aplicar patch", e uma confirmação será criada.
fonte
Você pode usar o cmd mencionado abaixo
fonte