Come si crea un ramo Git remoto?

Ho creato un ramo locale che voglio 'spingere' a monte. C'è una domanda simile qui su Stack Overflow su come tracciare un ramo remoto appena creato.

Tuttavia, il mio flusso di lavoro è leggermente diverso. **Per prima cosa voglio creare un ramo locale, e lo spingerò a monte solo quando sono soddisfatto e voglio condividere il mio ramo.

  • Come potrei farlo? (Le mie ricerche su Google non sembrano portare a nulla).
  • Come potrei dire ai miei colleghi di tirarlo dal repository upstream?

aggiornamento con Git 2.0 c'è una risposta più semplice che ho scritto qui sotto: https://stackoverflow.com/a/27185855/109305

Per prima cosa, create il vostro ramo localmente:

git checkout -b  # Create a new branch and check it out

Il ramo remoto viene creato automaticamente quando lo spingi sul server remoto. Così, quando ti senti pronto, puoi semplicemente fare:

git push   

Dove `è tipicamenteorigin`, il nome che git dà al remoto da cui hai clonato. I tuoi colleghi possono quindi semplicemente tirare quel ramo, e viene creato automaticamente in locale.

Nota comunque che formalmente, il formato è:

git push  :

Ma quando ne omettete uno, si assume che entrambi i nomi dei rami siano gli stessi. Detto questo, come parola di cautela, non fate l'errore critico di specificare solo : (con i due punti), o il ramo remoto sarà cancellato!

In modo che un successivo git pull sappia cosa fare, si potrebbe invece voler usare

git push --set-upstream   

Come descritto sotto, l'opzione --set-upstream imposta un ramo upstream:

Per ogni ramo che è aggiornato o spinto con successo, aggiunge l'upstream

(tracking) di riferimento, usato da git-pull(1) senza argomenti e altri comandi.

Commentari (29)

Per prima cosa, devi creare il tuo ramo localmente

git checkout -b your_branch

Dopo di che, puoi lavorare localmente nel tuo ramo, quando sei pronto a condividere il ramo, spingilo. Il prossimo comando spinge il ramo all'origine del repository remoto e lo traccia

git push -u origin your_branch

I compagni di squadra possono raggiungere il tuo ramo, facendo:

git fetch
git checkout origin/your_branch

Puoi continuare a lavorare nel ramo e spingere quando vuoi senza passare argomenti a git push (git push senza argomenti spingerà il master al master remoto, il tuo_branco locale al tuo_branco remoto, ecc...)

git push

I compagni di squadra possono fare il push al tuo ramo facendo dei commit e poi fare il push esplicitamente

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

O tracciando il ramo per evitare gli argomenti di git push

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
Commentari (0)

Come indicato nelle risposte precedenti,

git push  :

è sufficiente per spingere un ramo locale.

I tuoi colleghi possono tirare tutti i rami remoti (compresi quelli nuovi) con questo comando:

git remote update

Poi, per apportare modifiche al ramo, il solito flusso:

git checkout -b  /
Commentari (0)