Tenho dois clones locais do mesmo repositório remoto ( urlA
):
- espelho/ – criado com
git clone --mirror urlA mirror
- dirB/ – criado com
git clone --reference-if-able ../mirror urlA dirB
No dirB , quando executo:
git fetch
git push
será espelhado/ atualizado por qualquer um dos comandos?
Pelo que entendi, isso --reference-if-able
apenas acelera os downloads de objetos reutilizando objetos do repositório de referência, e não transforma a referência em um controle remoto real que recebe fetch
ou push
. No entanto, encontrei em outro lugar um comentário sugerindo que isso poderia propagar comandos.
Pergunta:
Alguma vez
houve --reference[-if-able]
um gatilho fetch
ou push
no repositório de referência? Se não, como posso configurar o Git para que um único git push
comando ou git fetch
de dirB também atualize meu clone do espelho local?
--reference
/--reference-if-able
faz:Ao clonar com
--reference
ou--reference-if-able
, o Git pega emprestado dados do objeto do repositório de referência (neste caso,../mirror
). Isso é apenas para eficiência de desempenho/memória — ajuda a evitar o download ou o armazenamento de objetos duplicados.--reference
/--reference-if-able
não:fetch
oupush
para o repositório de referência.git fetch
egit push
em dirB só irá interagir com os controles remotos configurados emdirB/.git/config
, não commirror/
.Então não,
git fetch
ou nãogit push
irádirB
atualizarmirror/
.mirror/
permanece completamente alheio ao que acontece emdirB
.Se você quiser que mirror/ seja atualizado automaticamente quando você buscar/enviar do dirB, você precisará configurar explicitamente esse comportamento com um script personalizado ou um hook.