Hoe maak je een remote Git branch aan?

Ik heb een lokale branch aangemaakt die ik stroomopwaarts wil 'push'. Er is een vergelijkbare vraag hier op Stack Overflow over hoe een nieuw aangemaakte remote branch te volgen.

Mijn workflow is echter iets anders. Eerst wil ik een lokale branch maken, en ik zal het alleen stroomopwaarts pushen als ik'tevreden ben en mijn branch wil delen.

  • Hoe zou ik dat doen? (mijn google opzoekingen leken niets op te leveren).
  • Hoe zou ik mijn collega's vertellen om het van de upstream repository te halen?

UPDATE Met Git 2.0 is er een eenvoudiger antwoord Ik heb hieronder geschreven: https://stackoverflow.com/a/27185855/109305

Eerst, maak je lokaal je tak aan:

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

De remote branch wordt automatisch aangemaakt als je hem naar de remote server pusht. Dus als je er klaar voor bent, kun je gewoon doen:

git push   

Waar `typischorigin` is, de naam die git geeft aan de remote waar je van gekloond hebt. Je collega's zouden dan gewoon die branch kunnen trekken, en het'wordt automatisch lokaal aangemaakt.

Merk echter op dat formeel, het formaat is:

git push  :

Maar als je er een weglaat, neemt het aan dat beide taknamen hetzelfde zijn. Dit gezegd hebbende, voorzichtigheidshalve, maak niet de kritieke fout door alleen : (met de dubbele punt) te specificeren, of de remote branch zal worden verwijderd!

Zodat een volgende git pull weet wat te doen, zou je in plaats daarvan kunnen gebruiken:

git push --set-upstream   

Zoals hieronder beschreven, zet de --set-upstream optie een upstream branch op:

Voor elke branch die up to date is of succesvol gepushed is, voeg stroomopwaarts (tracking) referentie, gebruikt door argument-loze git-pull(1) en andere commando's.

Commentaren (29)

Eerst, moet u uw tak lokaal aanmaken

git checkout -b your_branch

Daarna kun je lokaal in je branch werken, als je klaar bent om de branch te delen, zet je hem terug. Het volgende commando zet de tak naar de oorsprong van het remote repository en volgt het

git push -u origin your_branch

Teamgenoten kunnen je branch bereiken, door te doen:

git fetch
git checkout origin/your_branch

Je kunt in de branch blijven werken en pushen wanneer je maar wilt, zonder argumenten aan git push mee te geven (git push zonder argumenten zal de master naar de remote master pushen, jouw_branch lokaal naar de remote jouw_branch, etc...)

git push

Teamgenoten kunnen naar jouw branch pushen door commits te doen en dan expliciet te pushen

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

Of de branch volgen om de argumenten van git push te vermijden

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

Zoals gezegd in de vorige antwoorden,

git push  :

is genoeg om een lokale tak te pushen.

Je collega's, kunnen alle remote branches (inclusief nieuwe) met dit commando ophalen:

git remote update

Dan, om wijzigingen in de tak aan te brengen, de gebruikelijke stroom:

git checkout -b  /
Commentaren (0)