2011-01-20 8 views
110

Ho Git configurato in modo che quando eseguo git push, spinga le modifiche al mio repository GitHub. Fino ad ora ho avuto solo un master branch.Spingere un ramo locale fino a GitHub

Tuttavia, ora ho creato una filiale locale e impegnato ad esso utilizzando:

git checkout -b my_new_branch 
git commit 

Quello che vorrei fare ora è spingere le mie modifiche su questo ramo per GitHub. Faccio solo una spinta git?

Quando ho prima configurarlo ho eseguito:

git config push.default current 
+0

Che cosa è esattamente la tua domanda? Con 'push.default' impostato in questo modo, sì,' git push' spingerà il ramo corrente verso l'origine, che è il tuo repository github, assumendo che tu sia clonato da lì. (È possibile specificare un telecomando diverso con 'branch.my_new_branch.remote' se vuoi.) Quindi hai provato questo e non funziona? – Cascabel

+1

Se si desidera che tutte le filiali locali passino allo stesso ramo remoto, specificare: git push origine HEAD: remote_branch –

risposta

216

Credo che stai cercando git push origin my_new_branch, supponendo che il telecomando origine è configurato in modo da colpire il vostro repository github.

+0

git push come per https://www.atlassian.com/git/tutorials/syncing/git- spingere – vikramvi

+0

Fantastico, semplice e al punto! –

+2

Se si desidera lavorare su questo ramo con altre persone e quindi fare git pull, si desidera impostare le informazioni di monitoraggio per il nuovo ramo: 'git branch --set-upstream-to = origine/my_new_branch my_new_branch' – gloriphobia

-9

Se hai configurato il tuo git per spingere al tuo repo master GitHub, non importa con il ramo che sei, esso passerà al tuo repo master GitHub.

Tenere presente che, se molti sviluppatori stanno lavorando nello stesso repository, è possibile ottenere un conflitto.

+0

Ho eseguito git config push.default corrente – Noam

8

A seconda delle impostazioni git locali, se si è verificato un ramo che non è quello clonato o esistente nel punto in cui si sta tentando di eseguire il push, git non invierà il ramo locale.

Ecco il messaggio che prevede:

avvertimento: push.default è disinserito; il suo valore implicito è stato modificato in Git 2.0 da "matching" a "simple". Per mettere a tacere questo messaggio e mantenere il comportamento tradizionale, utilizzare:

git config --global push.default corrispondenza

di reprimere questo messaggio e adottare il nuovo comportamento oggi, l'uso:

git config - global push.default simple

Quando push.default è impostato su "matching", git sposterà i rami locali ai rami remoti già esistenti con lo stesso nome.

Da Git 2.0, Git default è il più conservativa 'semplice' comportamento, che spinge solo il ramo corrente alla corrispondente ramo remoto che 'git pull' usa per aggiornare il ramo corrente.

Vedere 'git help config' e cercare 'push.default' per ulteriori informazioni . (La modalità 'semplice' è stata introdotta nel Git 1.7.11 Utilizzare la modalità simile 'corrente' invece di 'semplice' se spesso usano le meno versioni di Git.)

fatale: La filiale corrente MyLocalBranch non ha a monte ramo. Per spingere il ramo corrente e impostare il telecomando come monte, utilizzare

git push --set-upstream origin MyLocalBranch