Ho creato un repository nudo per pubblicare il mio repository, ma non riesco a capire come aggiornare il repository nudo con lo stato corrente del repository principale.Come posso aggiornare il mio repository bare?
risposta
Se si desidera duplicare tutti gli oggetti dalla repo principale, fare questo all'interno della repository principale:
git push --all <url-of-bare-repo>
In alternativa, effettuare un'operazione di recupero all'interno del pronti contro termine a nudo:
git fetch <url-of-main-repo>
Non è possibile fare un pull, perché un pull vuole unire con HEAD
, che un repository nudo non ha.
È possibile aggiungere questi come telecomandi per risparmiare un po 'di battitura nel futuro:
git remote add <whatever-name> <url-of-other-repo>
allora si può semplicemente fare
git push --all <whatever-name>
o
git fetch <whatever-name>
a seconda di ciò repo sei in. Se <whatever-name>
è origin
, puoi anche lasciarlo fuori r.
Disclaimer: Io non sono un git guru. Se ho detto qualcosa di sbagliato, mi piacerebbe essere illuminato!
Aggiornamento: Leggi i commenti!
Il push sembra funzionare bene, grazie per il suggerimento penso che sarà in grado di integrarlo in un gancio o qualcosa di simile. –
Quando ho fatto un 'git-fetch --all' all'interno del repository nudo, non ho visto gli aggiornamenti che avevo fatto al repository principale, ma quando li spingevo dal repository principale con' git push --all
Cosa intendi con "non visto"? Non sono sicuro di come 'git log' si comporta in un repository nudo; forse prova 'git log --all'? – Thomas
Aggiungere il repository nudo come repository remoto, quindi utilizzare git push
.
Quindi, se voglio farlo senza spingere non posso utilizzare un repository nudo e utilizzare un collegamento simbolico o qualcosa del genere? –
Il push è il metodo normale per trasferire i contenuti del repository su un repository nudo, non è necessario evitarlo. – Philipp
Non si può sempre spingere. Ad esempio, se il bare è in una rete privata e il repository principale è pubblico (su GitHub, ad esempio) – fanf42
ho creato un repository utilizzando il seguente comando
git clone --bare <remote_repo>
Poi ho provato ad aggiornare il clone nuda con la risposta di Thomas, ma non ha funzionato per me. Per ottenere il repository nuda per l'aggiornamento (che è quello che penso Let_Me_Be stava chiedendo), ho dovuto creare un repository specchio:
git clone --mirror <remote_repo>
Poi ho potuto eseguire il seguente comando nel repository a specchio per afferrare gli aggiornamenti del repository principale :
git fetch --all
mi sono imbattuto in questa soluzione con la lettura Mirror a Git Repository By Pulling
Per modificare un repository bare esistente in mirroring, è sufficiente aggiungere 2 righe al file git config al numero
L'unica soluzione oltre a ricreare con git clone --mirror
è from Gregor:
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
quindi puoi git fetch
e vedrai gli aggiornamenti. La cosa strana è che prima di questo, anche se c'è un remote
configurato, non ha filiali elencate in git branch -a
.
Questo mi ha davvero aiutato! Anche Capistrano project/repo utilizza questa impostazione per consentire a 'liner update update git 'di eseguire il lavoro. –
Se il telecomando ha rami di aggiornamento o eliminazione forzati (e si desidera riflettere tali modifiche), potrebbe essere necessario aggiungere '--force' e' --prune' rispettivamente alla riga 'git fetch'. –
Dopo tanto scherzo ho scoperto che questo funziona per me.
volta:
git clone --mirror ssh://[email protected]:2000/repo
git remote add remote_site ssh://[email protected]_site.address/repo
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
ogni volta che voglio sincronizzare:
cd /home/myhome/repo.git
git --bare fetch ssh://[email protected]:2000/repo
git fetch ssh://[email protected]:2000/repo
git push --mirror remote_site
La terza riga ('git config remote.origin.fetch 'refs/heads/*: refs/heads/*'') è la chiave. Buona risposta, grazie! – peterh
Assumendo:
$ git clone --bare https://github.com/.../foo.git
Fetch con:
$ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune
Nota: --git-dir=foo.git
non è necessario se si prima nella directory.
Strano che questa risposta non sia in cima. Almeno funziona qui ... –
Ho fatto un clone nudo, e non c'è origine ... – Kieveli
Anche se non sono a conoscenza quando ciò accade, se 'origine' non è definita, puoi sempre sostituire' origine' parte con il percorso/url del tuo repository originale. per esempio. '$ git --git-dir = foo.git recupera https://github.com/.../foo.git + refs/heads/*: refs/heads/*' – antak
- 1. Come posso aggiornare il mio repository biforcato usando SourceTree?
- 2. Come posso annullare l'ultimo commit in un repository git bare?
- 3. Come si usa il repository "git --bare init"?
- 4. Come posso interrogare il mio repository subversion?
- 5. Come posso utilizzare FTP per aggiornare il mio sito Web da un repository Subversion?
- 6. Come posso rimuovere tutti i file nel mio repository git e aggiornare/push dal mio repository git locale?
- 7. git clone --bare: fatale: repository inesistente
- 8. Git, Come cambiare un bare per un repository condiviso?
- 9. Come posso spostare il mio repository in TortoiseSVN?
- 10. Come posso ospitare il mio repository privato di conda?
- 11. Come aggiornare il repository maven in Eclipse?
- 12. Come posso creare un repository Git bare in Visual Studio 2015?
- 13. Git clone --bare/fetch
- 14. Come posso recuperare il mio repository Git per un errore "albero mancante"?
- 15. Posso condividere il mio repository GitHub privato tramite link?
- 16. Sovrascrittura del repository git remoto con il mio repository
- 17. Come posso creare un repository git sul mio hostgator condiviso?
- 18. Come aggiornare il repository locale Maven con le risorse più recenti da un repository remoto?
- 19. Come aggiornare un repository git bifronte?
- 20. Come posso aggiornare Numpy?
- 21. Perché non posso eseguire il deploy dal mio repository locale su un repository Maven remoto?
- 22. Posso eliminare un repository GitHub e quindi passare il mio file CNAME in un altro repository?
- 23. Come aggiornare il repository biforcuto GitHub utilizzando TortoiseGIT?
- 24. Come posso usare l'opzione "--bare" in Rails 3.1 per CoffeeScript?
- 25. Come posso aggiornare Maven Index manualmente?
- 26. Perché Maven usa il mio repository interno prima del mio repository locale?
- 27. Come faccio ad aggiornare il mio token di accesso google_oauth2 utilizzando il mio token di aggiornamento?
- 28. Devo rendere il mio repository il mio DocumentRoot per il mio sito web?
- 29. Come posso sistemare il mio oggetto fisico?
- 30. Ho perso il mio repository SVN
Vedere questa risposta: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide/2964397#2964397 –