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?
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?
Respostas:
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 fez git config user.{name,email}
.
git apply --check
diz patch does not apply
e git apply -3
diz repository 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?
git apply name-of-file.patch
Ou, se você está chutando a velha escola:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
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:
git am *.patch
ou apenas:
git am
O Git encontrará patches automaticamente e os aplicará em ordem ;-)
UPD
Aqui você encontra como gerar esses patches
git apply
.. e em --reverse
:-) 👍
Se você deseja aplicá-lo como um commit , use git am .
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.
Você pode usar o cmd mencionado abaixo
git apply fileName.patch