Hvordan oppretter du en ekstern Git-gren?

Jeg har opprettet en lokal gren som jeg ønsker å 'push' oppstrøms. Det er et lignende spørsmål her på Stack Overflow om hvordan du sporer en nylig opprettet ekstern gren.

Arbeidsflyten min er imidlertid litt annerledes. **Først vil jeg opprette en lokal filial, og jeg vil bare skyve den oppstrøms når jeg er fornøyd og vil dele filialen min.

  • Hvordan gjør jeg det? (Google-søkene mine så ikke ut til å gi noen resultater).
  • Hvordan ber jeg kollegene mine om å hente den fra oppstrømsarkivet?

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

Først oppretter du filialen lokalt:

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

Den eksterne grenen opprettes automatisk når du pusher den til den eksterne serveren. Så når du føler deg klar for det, kan du bare gjøre det:

git push   

Hvor `vanligvis erorigin`, navnet som git gir til den eksterne grenen du klonet fra. Kollegene dine vil da bare trekke den grenen, og den opprettes automatisk lokalt.

Merk imidlertid at formatet formelt sett er:

git push  :

Men når du utelater en av dem, antar den at begge grennavnene er de samme. Når dette er sagt, må du ikke gjøre den kritiske feilen å spesifisere bare : (med kolon), for da vil den eksterne grenen bli slettet!

For at en påfølgende git pull skal vite hva den skal gjøre, kan du i stedet bruke:

git push --set-upstream   

Som beskrevet nedenfor, setter alternativet --set-upstream opp en oppstrømsgren:

For hver gren som er oppdatert eller vellykket vellykket pushet, legges det til en oppstrøms (sporing) referanse, som brukes av argumentløs git-pull(1) og andre > kommandoer. kommandoer.

Kommentarer (29)

Først må du opprette filialen lokalt

git checkout -b your_branch

Deretter kan du jobbe lokalt i grenen din, og når du er klar til å dele grenen, pusher du den. Den neste kommandoen skyver grenen til det eksterne depotets opprinnelse og sporer den

git push -u origin your_branch

Lagkamerater kan nå grenen din ved å gjøre det:

git fetch
git checkout origin/your_branch

Du kan fortsette å jobbe i grenen og pushe når du vil uten å sende argumenter til git push (git push uten argumenter vil pushe master til remote master, your_branch local til remote your_branch, osv...).

git push

Lagkamerater kan pushe til grenen din ved å gjøre commits og deretter pushe eksplisitt

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

Eller spore grenen for å unngå argumentene til git push.

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

Som nevnt i de tidligere svarene,

git push  :

er nok til å pushe en lokal gren.

Kollegene dine kan hente alle eksterne grener (inkludert nye) med denne kommandoen:

git remote update

Deretter, for å gjøre endringer på grenen, den vanlige flyten:

git checkout -b  /
Kommentarer (0)