Quando ho provato 'git push origin master' nel repository remoto sul mio disco esterno, si è verificato un avviso git che indica che il pusing per il checkout del repository verrà eseguito nelle prossime versioni di git rifiutate per impostazione predefinita. Su disco esterno ho il progetto checkouted e voglio inviare le modifiche che ho fatto sul mio computer a questi repository. 'Git push origin master' non è la strada giusta? Devo 'git pull ...' sul repository sul mio disco esterno? Quindi non posso spingere i cambiamenti ma li tiro semplicemente? Lavorare solo con il repository "bare" è diverso? Quindi, se il repository sul mio disco esterno fosse un repository scarno, potrei inviarlo a modifiche? Capisco correttamente?Git push solo per repository nudi?
risposta
Non si dovrebbe eseguire il push su un repository non nullo perché premendo si aggiornerà solo lo stato interno del repository e non si influirà sulle copie in uscita dei file su disco. Pertanto, potresti incorrere in problemi se inizi a lavorare in quel repository senza prima aggiornare (tramite git checkout
) le copie su disco dello stato dei file nel repository.
Leggere attentamente l'avvertenza. La nuova proibizione predefinita è solo spingendo al ramo attualmente estratto in un repository non nudo. È perfettamente OK passare a qualsiasi altro ramo in un repository non nudo.
La ragione di ciò è che il processo di push non ha accesso diretto all'albero di lavoro in modo che l'indice e la diramazione vengano modificati sotto l'albero di lavoro. Quando successivamente si passa all'albero di lavoro, sembra che l'albero di lavoro abbia annullato le modifiche apportate mescolate a eventuali modifiche che erano realmente in fase di sviluppo. Ciò rende molto difficile separare i due gruppi di modifiche.
La spinta verso altri rami non presenta aspetti negativi. È quindi possibile accedere a quel repository e unire tali modifiche nel ramo estratto, se lo si desidera.
Non ho capito questa risposta fino a quando non ho letto [git ready »push to only repository] (http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html) e [tutto ciò che riguarda i repository "nudi" - cosa, perché e come correggere un push non nudo] (http://sitaramc.github.com/concepts/bare.html) (specialmente il "sì sì, ma perché ho bisogno di un repository nudo? "sezione). Ora, comunque, lo faccio! –
È possibile eseguire il push di un ramo non estratto e quindi utilizzare il gancio di post-ricezione per l'unione di barnch con il ramo aggiornato? –
- 1. git push solo parte di un repository
- 2. Git ignore solo push
- 3. Git disable push dal repository locale
- 4. Errore push Git: "Origine non sembra essere un repository git"
- 5. Git ricorsivo push/pull?
- 6. Git push impiega per sempre
- 7. C'è un modo per configurare git repository per rifiutare 'git push --force'?
- 8. git push .git/file descrizione
- 9. Git push: "origine" fatale "non sembra essere un repository git - fatale Impossibile leggere dal repository remoto."
- 10. Respinto git push
- 11. git log --branch ha un comportamento diverso sui repository normali e nudi?
- 12. Spingere un albero di sorgenti Git, non solo un repository
- 13. diversi URL push/pull per sottomodulo git
- 14. git come disabilitare push
- 15. Git: Stop git push
- 16. Come posso avere dove "git push" spinge ai repository locali?
- 17. Bitbucket git push ssh "conq: sintassi del repository non valida."
- 18. Errore quando "git push" per github
- 19. Anteprima di un push Git
- 20. git push heroku master error: Repository not found
- 21. Modifica git paternità dopo git push
- 22. Utilizzo di un singolo repository git per più progetti git
- 23. xcode git pull/push crash
- 24. Come configurare git per evitare accidentali git push
- 25. git push respinto
- 26. Impossibile maestro Git-push per Github
- 27. Git Push into Production (FTP)
- 28. Come posso rimuovere tutti i file nel mio repository git e aggiornare/push dal mio repository git locale?
- 29. "git push" e "git push --tags" nello stesso comando?
- 30. Git push al server live
Quindi, spingere al pronti contro termine non è esattamente una spinta dal repo? –
gettingGuru: corretto; una spinta è effettivamente l'opposto di un recupero. Pull = fetch + unisci nel ramo corrente. – ebneter
La chiave è che un pull aggiorna anche i file nell'albero di lavoro (i file "su disco"), che non fa né un push né un recupero. – mipadi