Spingere un ramo locale su GitHub


117

Ho configurato Git in modo che quando eseguo git push, invii le modifiche al mio repository GitHub. Fino ad ora ho avuto solo un ramo principale.

Tuttavia, ora ho creato una filiale locale e mi sono impegnata a utilizzarla:

git checkout -b my_new_branch
git commit

Quello che vorrei fare ora è inviare le mie modifiche su questo ramo a GitHub. Faccio solo una spinta?

Quando l'ho impostato per la prima volta ho eseguito:

git config push.default current

Qual è esattamente la tua domanda? Con push.defaultset in questo modo, sì, git pushspingerà il ramo corrente a origin, che è il tuo repository github, supponendo che tu abbia clonato da lì. (È possibile specificare un telecomando diverso con branch.my_new_branch.remotese lo si desidera.) Quindi l'hai provato e non funziona?
Cascabel

1
Se vuoi che tutti i tuoi rami locali eseguano il push allo stesso ramo remoto, sii esplicito: git push origin HEAD: remote_branch
Ustaman Sangat

Risposte:


221

Credo che tu stia cercando git push origin my_new_branch, supponendo che il tuo telecomando di origine sia configurato per raggiungere il tuo repository GitHub.


git push <remote> <branch> secondo atlassian.com/git/tutorials/syncing/git-push
vikramvi

3
Se poi vuoi lavorare su questo ramo con altre persone e quindi fai git pull, ti consigliamo di impostare le informazioni di tracciamento per il tuo nuovo ramo: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia

9

A seconda delle impostazioni git locali, se hai un ramo estratto che non è quello che hai clonato o uno che esiste dove stai tentando di eseguire il push, git non eseguirà il push del tuo ramo locale.

Ecco il messaggio che fornisce:

avviso: push.default non è impostato; il suo valore implicito è cambiato in Git 2.0 da "matching" a "simple". Per sopprimere questo messaggio e mantenere il comportamento tradizionale, usa:

git config - corrispondenza globale push.default

Per sopprimere questo messaggio e adottare subito il nuovo comportamento, usa:

git config --global push.default semplice

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

A partire da Git 2.0, Git utilizza per impostazione predefinita il comportamento "semplice" più conservativo, che spinge il ramo corrente solo al ramo remoto corrispondente che "git pull" utilizza per aggiornare il ramo corrente.

Vedere "git help config" e cercare "push.default" per ulteriori informazioni. (la modalità "semplice" è stata introdotta in Git 1.7.11. Usa la modalità simile "corrente" invece di "semplice" se a volte usi versioni precedenti di Git)

irreversibile: il ramo corrente MyLocalBranchnon ha un ramo a monte. Per eseguire il push del ramo corrente e impostare il telecomando come upstream, utilizzare

git push --set-upstream origin MyLocalBranch

0

Se sei davvero pigro, puoi spingere tutte le filiali locali semplicemente usando

git push --all

--tutti

Spingi tutti i rami (cioè i riferimenti sotto refs/heads/); non può essere utilizzato con altri <refspec>.


-12

Se hai configurato il tuo git per eseguire il push al tuo repository principale GitHub, indipendentemente dal ramo in cui ti trovi, verrà inviato al tuo repository principale GitHub.

Tieni presente che, se molti sviluppatori lavorano nello stesso repository, potresti ottenere un conflitto.


Ho eseguito git config push.default current
Noam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.