Hvordan opretter man en fjern-Git-gren?

Jeg har oprettet en lokal gren, som jeg vil 'push' opstrøms. Der er et lignende spørgsmål her på Stack Overflow om, hvordan man kan spore en nyoprettet fjerngren.

Min arbejdsgang er dog lidt anderledes. Først Jeg vil oprette en lokal gren, og jeg vil kun skubbe den opstrøms, når jeg'er tilfreds og ønsker at dele min gren.

  • Hvordan ville jeg gøre det? (mine google-søgninger syntes ikke at komme op med noget).
  • Hvordan ville jeg fortælle mine kolleger at trække den fra upstream repository?

OPDATE Med Git 2.0 er der et enklere svar Jeg har skrevet nedenfor: https://stackoverflow.com/a/27185855/109305

Først opretter du din filial lokalt:

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

Den eksterne gren oprettes automatisk, når du skubber den til den eksterne server. Så når du føler dig klar til det, kan du bare gøre det:

git push   

Hvor `typisk erorigin`, det navn som git giver til den fjerngren du klonede fra. Dine kolleger vil så bare trække denne branch, og den bliver automatisk oprettet lokalt.

Bemærk dog, at formelt set er formatet:

git push  :

Men når du udelader en af dem, antager den, at begge filialnavne er de samme. Når det er sagt, så skal du forsigtigt ikke begå den kritiske fejl at angive kun : (med kolon), ellers vil den eksterne gren blive slettet!

For at en efterfølgende git pull vil vide, hvad der skal gøres, kan du i stedet bruge:

git push --set-upstream   

Som beskrevet nedenfor, indstiller indstillingen --set-upstream en opstrømsgren:

For hver gren, der er opdateret eller succesfuldt skubbet, tilføjes opstrøms (sporing) reference, der bruges af argument-less git-pull(1) og andre kommandoer.

Kommentarer (29)

Først skal du oprette din filial lokalt

git checkout -b your_branch

Derefter kan du arbejde lokalt i din gren, og når du er klar til at dele grenen, skal du skubbe den. Den næste kommando skubber grenen til det eksterne repository origin og sporer den

git push -u origin your_branch

Teamkammerater kan nå din gren, ved at gøre:

git fetch
git checkout origin/your_branch

Du kan fortsætte med at arbejde i grenen og skubbe når du vil uden at sende argumenter til git push (git push uden argumenter vil skubbe master til remote master, din_gren lokal til remote din_gren, osv...)

git push

Holdkammerater kan pushe til din gren ved at lave commits og derefter pushe eksplicit

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

Eller spore grenen for at undgå argumenterne til git push

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

Som anført i de foregående svar,

git push  :

er nok til at skubbe en lokal gren.

Dine kollegaer kan trække alle fjerngrene (inklusive nye) med denne kommando:

git remote update

Derefter, for at foretage ændringer i grenen, den sædvanlige fremgangsmåde:

git checkout -b  /
Kommentarer (0)