Hoe maak je een remote git-filiaal?

Ik heb een lokale tak gemaakt die ik wil ‘duwen’ stroomopwaarts. Er is een vergelijkbare vraag hier op Stack Overflow over het volgen van een nieuw gecreëerde afstandsbediening.

Mijn workflow is echter iets anders. First Ik wil een lokale tak maken, en ik zal het alleen maar stroomopwaarts duwen als ik tevreden ben en mijn tak wil delen.

  • Hoe zou ik dat doen? (Mijn Google-zoekopdrachten leken niets bij elkaar te komen).
  • Hoe zou ik mijn collega’s vertellen om het uit de upstream-repository te trekken?

Update met git 2.0 Er is een eenvoudiger antwoord Ik heb hieronder geschreven: HTTPS: // Stackoverflow. COM / a / 27185855/109305


Antwoord 1, Autoriteit 100%

Ten eerste maak je je filiaal lokaal:

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

De afstandsbediening wordt automatisch gemaakt wanneer u deze naar de externe server drukt. Dus als je er klaar voor voelt, kun je doen:

git push <remote-name> <branch-name> 

waar <remote-name>is meestal origin, de naam die git geeft aan de afstandsbediening die u hebt gekloneerd. Je collega’s zouden dan gewoon die tak trekken en het wordt automatisch lokaal gemaakt.

Merk echter op dat formeel het formaat is:

git push <remote-name> <local-branch-name>:<remote-branch-name>

Maar wanneer u er een weglaat, gaat het ervan uit dat beide filiaalnamen hetzelfde zijn. Nadat u dit hebt gezegd, als een woord van voorzichtigheid , maakt u niet de kritieke fout om alleen te specificeren :<remote-branch-name>(met de dikke darm) of de Afstandsbediening wordt verwijderd!

Om ervoor te zorgen dat een volgende git pullweet wat te doen, kun je in plaats daarvan het volgende gebruiken:

git push --set-upstream <remote-name> <local-branch-name> 

Zoals hieronder beschreven, stelt de optie --set-upstreameen upstream-tak in:

Voor elk filiaal dat up-to-date is of
succesvol gepusht, upstream toevoegen
(tracking) referentie, gebruikt door
argument-less git-pull(1) en andere
commando’s.


Antwoord 2, autoriteit 24%

Eerst moet u uw filiaal lokaal maken

git checkout -b your_branch

Daarna kun je lokaal in je branch werken, als je klaar bent om de branch te delen, druk je erop. De volgende opdracht duwt de vertakking naar de oorsprong van de externe repository en volgt deze

git push -u origin your_branch

Teamgenoten kunnen uw vestiging bereiken door:

git fetch
git checkout origin/your_branch

Je kunt doorgaan met werken in de branch en pushen wanneer je maar wilt zonder argumenten door te geven aan git push (argumentloze git push zal de master naar remote master pushen, your_branch local naar remote your_branch, etc…)

git push

Teamleden kunnen naar je 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 het volgen van de branch om de argumenten voor git push te vermijden

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push

Antwoord 3, autoriteit 9%

Eenvoudige Git 2.0+ oplossing:

Vanaf Git 2.0 is het gedrag eenvoudiger geworden:

Je kunt git configureren met push.default = currentom het leven gemakkelijker te maken:

Ik heb dit toegevoegd zodat ik nu een nieuwe branch stroomopwaarts kan pushen met

$ git push -u

-uzal de remote branch met dezelfde naam volgen. Met deze configuratie raad je nu automatisch de externe verwijzing naar git push. Van git.config-documentatie:

push.default

Definieert de actie die git push moet ondernemen als er geen expliciete refspec wordt gegeven.

push.default = current– druk op de huidige vertakking om een vertakking bij te werken met de
dezelfde naam aan de ontvangende kant. Werkt in zowel centrale als niet-centrale workflows.

Voor mij is dit een goede vereenvoudiging van mijn dagelijkse Git-workflow. De configuratie-instelling zorgt voor de ‘gebruikelijke’ use case waarbij u lokaal een branch toevoegt en deze op afstand wilt creëren. Ook kan ik net zo gemakkelijk lokale branches maken van remotes door gewoon git co remote_branch_namete doen (in tegenstelling tot het gebruik van --set-upstream-tovlag).

Ik ken deze vraag en de geaccepteerde antwoorden zijn nogal oud, maar het gedrag is veranderd, zodat er nu configuratie-opties bestaan om uw workflow eenvoudiger te maken.

Voer dit uit op de opdrachtregel om toe te voegen aan uw algemene Git-configuratie:

$ git config --global push.default current

Antwoord 4, autoriteit 2%

Zoals vermeld in de vorige antwoorden,

git push <remote-name> <local-branch-name>:<remote-branch-name>

is genoeg om een lokale vestiging te pushen.

Uw collega’s kunnen alle vertakkingen (inclusief nieuwe) ophalen met dit commando:

git remote update

Vervolgens, om wijzigingen aan te brengen in de vertakking, de gebruikelijke stroom:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

Antwoord 5, autoriteit 2%

Maak lokaal een nieuwe vertakking op basis van de huidige vertakking:

git checkout -b newbranch

Voeg eventuele wijzigingen door zoals u dat normaal zou doen. Duw het dan stroomopwaarts:

git push -u origin HEAD

Dit is een snelkoppeling om de huidige vertakking naar een vertakking met dezelfde naam op originte pushen en deze te volgen zodat u origin HEADniet hoeft op te geven in de toekomst.


Antwoord 6, autoriteit 2%

Als u een vertakking wilt maken van de huidige vertakking

git checkout -b {your_local_branch_name} 

u wilt een vertakking van een vertakking op afstand, u kunt het proberen

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

Als u klaar bent met de wijzigingen, kunt u het bestand toevoegen.

git add -A or git add <each_file_names>

Doe dan lokaal een commit

git commit -m 'your commit message'

Als u naar externe repo wilt pushen

git push -u origin <your_local_branch_name>

Alles samen zal zijn

git checkout -b bug_fixes 

of
Als je een lokale branch bug_fixeswilt maken vanuit een remote branch, zeg dan development

git checkout -b bug_fixes origin/development

U kunt naar de vertakking naar externe repo pushen door

git push -u origin bug_fixes

Elke keer dat je je branch wilt updaten vanuit een andere branch, zeg master,

git pull origin master

Antwoord 7

[Snel antwoord]

U kunt het in 2 stappen doen:

1. Gebruik de checkoutvoor het maken van de lokale branche:

git checkout -b yourBranchName

2. Gebruik de opdracht pushom de tak te autoruis en verzendt u de code naar de Remote Repository:

git push -u origin yourBranchName

Er zijn meerdere manieren om dit te doen, maar ik denk dat op deze manier heel eenvoudig is.


Antwoord 8

Als u eigenlijk gewoon een afstandsbediening wilt maken zonder de lokale te hebben, kunt u het als deze doen:

git push origin HEAD:refs/heads/foo

Het duwt alles wat je hoofd is om foo te vestigen die niet op de afstandsbediening bestonden.


Antwoord 9

Easste oplossing … Drumm Roll … Git versie 2.10.1 (Apple GIT-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote
2) Do your changes, and do a git commit 
3) git push origin localBranchNameThatDoesNotExistInRemote --force

n.b. – Het filiaal dat u zojuist hebt gemaakt in uw lokale omgeving en de niet-bestaande filiaal op afstand, waarbij u probeert te duwen, moet dezelfde naam hebben.


Antwoord 10

Eerst maak je de tak lokaal:

git checkout -b your_branch

en vervolgens om de branche op afstand te maken:

git push --set-upstream origin your_branch

Opmerking: dit werkt aan de laatste versies van Git:

$ git --version
git version 2.3.0

Cheers!


Antwoord 11

Maak de tak op uw lokale apparaat en schakel deze branche in:

$ git checkout -b [name_of_your_new_branch]

Duw de tak op GitHub:

$ git push origin [name_of_your_new_branch]

Als je iets in je branch wilt committen, zorg er dan voor dat je in je branch bent.

Je kunt alle vertakkingen zien die zijn gemaakt met :

$ git branch

Wat wordt weergegeven:

* approval_messages
  master
  master_clean

Voeg een nieuwe afstandsbediening toe voor uw filiaal:

$ git remote add [name_of_your_remote] 

Push wijzigingen van je commit naar je branch :

$ git push origin [name_of_your_remote]

Update je branch wanneer de originele branch van de officiële repository is bijgewerkt:

$ git fetch [name_of_your_remote]

Vervolgens moet je een aanvraag indienen om wijzigingen samen te voegen, als je branch is afgeleid van development moet je het volgende doen:

$ git merge [name_of_your_remote]/develop

Verwijder een branch op uw lokale bestandssysteem:

$ git branch -D [name_of_your_new_branch]

De verwijdering van de lokale vertakking op uw bestandssysteem forceren:

$ git branch -D [name_of_your_new_branch]

Verwijder de branch op github :

$ git push origin :[name_of_your_new_branch]

Hier alle informatie

Ander bestaand project


Antwoord 12

Een lokale vertakking maken van een bestaande vertakking (kan master/ontwikkelen/elke-andere-branch zijn).

git checkout -b branch_name

Duw dit naar de afstandsbediening

git push -u remote_name local_branch_name:remote_branch_name

Hier,

  1. -u : stelt de stroomopwaartse tak in
  2. remote_name : git stelt de naam standaard in op “origin” wanneer het de repository aanmaakt. Dit kan echter worden gewijzigd in een andere willekeurige naam.
  3. local_branch_name : is de naam van de lokale branch die gepusht moet worden.
  4. remote_branch_name : is de naam van de remote branch die we op remote willen maken.

Als we de namen van de lokale en externe vertakkingen verwijderen, heeft deze de indeling

git push -u remote_name branch_name

Hierdoor wordt de lokale vertakking naar extern gepusht en met dezelfde naam als de vertakkingsnaam van de lokale vertakking. De lokale vestiging zal ook de externe vestiging volgen.


Antwoord 13

Ik weet dat deze vraag goed is beantwoord, maar ik wilde alleen de stappen opsommen die ik neem om een nieuwe branch “myNewBranch” te maken en naar remote (“origin” in mijn geval) te pushen en tracking in te stellen. Beschouw dit als de “TL;DR”-versie 🙂

# create new branch and checkout that branch
git checkout -b myNewBranch
# now push branch to remote 
git push origin myNewBranch
# set up the new branch to track remote branch from origin
git branch --set-upstream-to=origin/myNewBranch myNewBranch

Antwoord 14

Nu met git, kun je gewoon typen, als je in de juiste branch bent

git push --set-upstream origin <remote-branch-name>

en git maak voor jou de origin branch.


Antwoord 15

Ik wilde dat even toevoegen terwijl:

git checkout -b {branchName}

Maakt een nieuwe vertakking aan, het controleert ook die vertakking / maakt het uw huidige vertakking. Als je om de een of andere reden alleen maar een branch wilt afbreken maar er niet je huidige branch van wilt maken, dan zou je het volgende commando gebruiken:

git branch {branchName}

In het eerste commando maakt “checkout” de betreffende branch je huidige branch, en de “-b” betekent: deze branch bestaat nog niet, dus maak het voor mij.


Antwoord 16

Hoe te doen via Source Tree

1: Open SourceTree, click on Repository -> Checkout
 2: Click on Create New Branch
 3: Select the branch where you want to get code for new branch 
 4: Give your branch name
 5: Push the branch  (by click on Push-button)

Antwoord 17

git push -u <remote-name> <branch-name>werkt niet als de nieuw gemaakte branch niet voortkomt uit dezelfde repo, dwz als je de nieuwe branch niet hebt gemaakt met git checkout -b new_branch, dan werkt dit niet.

Ik had bijvoorbeeld twee verschillende repositories lokaal gekloond en ik moest repo2/branch1 kopiëren naar repo1/ en het dan ook pushen.

Dezelink hielp me mijn lokale vestiging (gekloond van een andere repo) naar mijn externe repo te pushen:


Antwoord 18

Zo doe je het in eclipse via Egit.

  1. Ga naar de weergave “Git Repository Exploring” en vouw het git-project uit waarnaar je een branch wilt maken. Onder Takken -> Lokaal .. selecteer de vertakking waarvoor u de vertakking wilt maken (in mijn geval heb ik master geselecteerd .. u kunt desgewenst een andere vertakking selecteren) .. klik vervolgens met de rechtermuisknop en klik op de optie Vertakking maken .. en selecteer de kassa dit projectoptie en klik vervolgens op de knop Voltooien.

  2. Selecteer nu vanuit de projectverkenner het project .. klik met de rechtermuisknop en dan Team -> Vertakking duwen.

Er wordt een nieuwe externe vertakking gemaakt. Je kunt de naam van het filiaal aan je collega’s geven, zodat ze het kunnen trekken.


Antwoord 19

Ik heb twee manieren gebruikt om vertakkingen te maken

Als u Tortoisegit gebruikt, volgt u deze stappen: –

1.Create tak met behulp van Tortoisegit

Klik met de rechtermuisknop op uw project & GT; & GT; & GT; Tortoisegit & GT; & GT; & GT; Creëer Branch & GT; & GT; & GT; Schrijf de naam van het filiaal en selecteer het BASE-filiaal en druk vervolgens op OK

2. Plush de tak

Klik met de rechtermuisknop op uw project & GT; & GT; & GT; Tortoisegit & GT; & GT; & GT; Push & GT; & GT; & GT; Klik op OK

3.Schakel naar nieuwe tak

Klik met de rechtermuisknop op uw project & GT; & GT; & GT; Tortoisegit & GT; & GT; & GT; Switch / Checkout & GT; & GT; & GT; Selecteer Nieuw gemaakt filiaal en druk op OK

Als u opdrachtprompt gebruikt, volgt u deze stappen: –

1.create filiaal met opdrachtprompt

$ git checkout -b new_branch_name

2. Plush de tak

$ git push origin new_branch_name

3.Schakel naar nieuwe tak
Het is al overgeschakeld naar New_BRANCH_NAME anders kunt u

gebruiken

$ git checkout new_branch_name


Antwoord 20

U kunt eenvoudig,

  1. git checkout -b YOUR-NEW-BRANCH-NAME
  2. git add .
  3. git push origin YOUR-NEW-BRANCH-NAME

U kunt uw tak bekijken met de code onder de relevante GIT REPO

proost !! 🙂


Antwoord 21

Ik gebruik dit en het is vrij handig:

git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'

Gebruik: git mkdir new_branch

Je hebt niet eens git-status nodig; misschien wil ik er gewoon zeker van zijn dat alles goed gaat…

Je kunt ZOWEL de LOCAL als REMOTE branch hebben met een enkele opdracht.


Antwoord 22

Ik heb dit opgelost door dit toe te voegen aan mijn bash ~/.profile:

function gitb() { git checkout -b $1 && git push --set-upstream origin $1; }

Om vervolgens een nieuwe lokale + externe tak op te starten, schrijf ik:

gitb feature/mynewbranch

Dit creëert de branch endoet de eerste push, niet alleen om tracking in te stellen (zodat later git pullen git pushwerken zonder extra argumenten), maar feitelijk bevestigend dat de doelrepo nog niet zo’n branch bevat.


Antwoord 23

Hier is een voorbeeld. Ik heb maar twee vestigingen die eerst lokaal waren: origin en mobile-test.

Niets werkte voor mij totdat ik dit in de opdrachtregel gebruikte om mijn bijgewerkte bestanden daadwerkelijk in een externe vertakking te tonen.

git push --set-upstream origin mobile-test

Antwoord 24

Als je --single-branchhebt gebruikt om de huidige branch te klonen, gebruik dit dan om een nieuwe branch te maken van de huidige:

git checkout -b <new-branch-name>
git push -u origin <new-branch-name>
git remote set-branches origin --add <new-branch-name>
git fetch

Other episodes