border=0

"81.19.188.229 - 81.19.188.229"

Hoe verplaats je een nieuw lokaal filiaal naar een externe Git-repository en volg je het?

Ik wil het volgende kunnen doen:

  • Maak een lokale branch op basis van een andere (remote of lokale) branch (via git branch of git checkout -b )

  • Klik op de lokale branch naar de externe repository (publiceren), maar doe dit zodat git pull en git push onmiddellijk zullen werken.

Hoe dit te doen?

Ik weet van --set-upstream in Git 1.7, maar deze actie is na de creatie. Ik wil een manier vinden om soortgelijke wijzigingen aan te brengen wanneer ik op een branch op een externe repository klik.

3689
04 мая '10 в 15:58 2010-05-04 15:58 Roni Yaniv vroeg op 04 mei '10 om 15:58 2010-05-04 15:58
@ 13 antwoorden

In Git 1.7.0 en later kun je het nieuwe filiaal bekijken:

 git checkout -b <branch> 

Bestanden bewerken, toevoegen en repareren. Klik dan met de -u optie ( --set-upstream van --set-upstream ) :

 git push -u origin <branch> 

Git zal trackinginformatie instellen terwijl u klikt.

5823
03 июня '11 в 23:50 2011-06-03 23:50 het antwoord is gegeven Daniel Ruoso 03.111 juni om 23:50 de 06-06-2011 23:50

Als u uw repo niet deelt met andere gebruikers, is dit handig om al uw filialen naar een externe te pushen, en --set-upstream geschikt voor u:

 git push --all -u 

(Niet precies wat OP vroeg, maar deze interface met één regel is behoorlijk populair)

Als u uw repo met anderen deelt, is dit geen goede vorm, omdat u repo gaat invullen met al uw eigenzinnige experimentele takken.

449
20 янв. het antwoord wordt gegeven door ErichBSchulz 20 januari 2014-01-20 14:36 '14 om 14:36 2014-01-20 14:36

Voor de introductie van git push -u er geen git push optie om te krijgen wat je wilt. U had nieuwe configuratie-instructies moeten toevoegen.

Als u een nieuw filiaal aanmaakt, gebruik dan:

 $ git checkout -b branchB $ git push origin branchB:branchB 

U kunt de opdracht git config gebruiken om te voorkomen dat het .git/config bestand rechtstreeks wordt bewerkt.

 $ git config branch.branchB.remote origin $ git config branch.branchB.merge refs/heads/branchB 

Of u kunt het .git/config bestand handmatig bewerken om informatie te hebben over het volgen van deze thread.

 [branch "branchB"] remote = origin merge = refs/heads/branchB 
133
04 мая '10 в 16:03 2010-05-04 16:03 Antwoord wordt gegeven door Lohrun op 04 mei '10 om 16:03 2010-05-04 16:03

Simpel gezegd, om een ​​nieuwe lokale vestiging te maken, doe je:

 git branch <branch-name> 

Volg deze stappen om het naar de externe repository te verplaatsen:

 git push -u origin <branch-name> 
111
24 апр. Antwoord gegeven door piyushmandovra op 24 april 2015-04-24 15:09 '15 om 15:09 2015-04-24 15:09

Een kleine variatie van de reeds voorgestelde oplossingen:

  1. Maak een lokale vestiging op basis van een andere (externe of lokale) vestiging:

     git checkout -b branchname 
  2. Klik op de lokale branch naar de externe repository (publiceren), maar maak het traceerbaar, dus git pull en git push werken onmiddellijk

     git push -u origin HEAD 

    Het gebruik van HEAD is "een handige manier om de huidige branch naar dezelfde naam op de afstandsbediening te vertalen". Bron: https://git-scm.com/docs/git-push In termen van Git HEAD (hoofdletters) is een link naar de top van de huidige tak (boom).

    De optie -u is slechts een --set-setupstream van --set-setupstream . Hiermee wordt een upstream-trackinglink voor de huidige branch toegevoegd. U kunt dit controleren door in het .git / config-bestand te kijken:

    2019

Ik neem aan dat je het project al hebt gekloond, bijvoorbeeld:

 git clone http://github.com/myproject.git 
  • Maak vervolgens een nieuw filiaal in uw lokale exemplaar en controleer het:

     git checkout -b <newbranch> 
  • Stel dat u "git bare -init" op uw server hebt gemaakt en myapp.git hebt gemaakt, moet u:

     git remote add origin ssh://example.com/var/git/myapp.git git push origin master 
  • Daarna moeten gebruikers in staat zijn om

     git clone http://example.com/var/git/myapp.git 

NOTE. . Ik neem aan dat je server draait. Als dat niet zo is, zal het niet werken. Een goede praktische gids is hier .

TOEGEVOEGD

Voeg een remote branch toe:

 git push origin master:new_feature_name 

Controleer of alles in orde is (selecteer het begin en de lijst met externe filialen):

 git fetch origin git branch -r 

Maak een lokale branch en volg de remote branch:

 git checkout -tb new_feature_name origin/new_feature_name 

Update alles:

 git pull 
27
Het antwoord wordt gegeven door VP. 2010-05-04 16:04 04 mei '10 om 16:04 2010-05-04 16:04

Ik doe het gewoon

 git push -u origin localBranch:remoteBranchToBeCreated 

over een reeds gekloond project.

Git maakt een nieuwe tak met de naam remoteBranchToBeCreated onder mijn remoteBranchToBeCreated ik heb gemaakt in localBranch .

24
20 марта '17 в 14:13 2017-03-20 14:13 het antwoord wordt gegeven Arda 20 maart, '17 om 14:13 2017-03-20 14:13

bewerk obsolete, gebruik gewoon git push -u origin $BRANCHNAME


Gebruik git publish-branch van William's verschillende Git-tools ( gitorious repo en kloon ).

Nou ja, geen Ruby, dus negeer de voorzorgsmaatregelen! - neem de laatste drie regels van het script en maak een bash-script, git-publish-branch :

19
04 мая '10 в 16:03 2010-05-04 16:03 heeft op 04 mei '10 om 16:03 uur op 05-05-2010 16:04 uur op Tobias Kienzler geantwoord

Een nieuw filiaal maken door het te scheiden van het bestaande filiaal

git checkout -b <new_branch>

en klik vervolgens op deze nieuwe thread in de repository met

git push -u origin <new_branch>

Dit maakt en duwt alle lokale commits naar de nieuw gecreëerde remote origin/<new_branch>

16
03 июня '15 в 23:36 2015-06-03 23:36 het antwoord wordt gegeven cptjack 03 juni 15 om 23:36 2015-06-03 23:36

Ik heb een alias gemaakt, dus wanneer ik een nieuwe branch maak, zal deze de remote branch correct verwijderen en volgen. Ik heb het volgende fragment in het bestand .bash_profile :

 # Create a new branch, push to origin and track that remote branch publishBranch() { git checkout -b $1 git push -u origin $1 } alias gcb=publishBranch 

Gebruik : typ gcb thuy/do-sth-kool met thuy/do-sth-kool - dit is mijn nieuwe filenaam.

7
05 янв. het antwoord wordt gegeven door Thuy Trinh 05 jan 2016-01-05 13:11 '16 om 13:11 2016-01-05 13:11

Gebruik voor GitLab versie 1.7:

git checkout -b name_branch

(name_branch, ex: master)

Ga als volgt te werk om het naar een externe repository te verzenden:

git push -u origin name_new_branch

(name_new_branch, example: function)

6
06 дек. Het antwoord wordt gegeven door Fadid 06 dec. 2016-12-06 21:42 '16 om 21:42 2016-12-06 21:42

Met een beetje vertrouwen op de antwoorden hier, wikkelde ik dit proces op als een eenvoudig bash-script, dat natuurlijk kan worden gebruikt als een Git-alias.

Een be>

 $ git_push_new_branch.sh Have you run your unit tests yet? If so, pass OK or a branch name, and try again usage: git_push_new_branch {OK|BRANCH_NAME} eg git_push_new_branch -> Displays prompt reminding you to run unit tests git_push_new_branch OK -> Pushes the current branch as a new branch to the origin git_push_new_branch MYBRANCH -> Pushes branch MYBRANCH as a new branch to the origin 

git_push_new_branch.sh

 function show_help() { IT=$(CAT <<EOF Have you run your unit tests yet? If so, pass OK or a branch name, and try again usage: git_push_new_branch {OK|BRANCH_NAME} eg git_push_new_branch.sh -> Displays prompt reminding you to run unit tests git_push_new_branch.sh OK -> Pushes the current branch as a new branch to the origin git_push_new_branch.sh MYBRANCH -> Pushes branch MYBRANCH as a new branch to the origin ) echo "$IT" exit } if [ -z "$1" ] then show_help fi CURR_BRANCH=$(git rev-parse --abbrev-ref HEAD) if [ "$1" == "OK" ] then BRANCH=$CURR_BRANCH else BRANCH=${1:-$CURR_BRANCH} fi git push -u origin $BRANCH 
1
21 апр. Het antwoord is gegeven door Brad Parks 21 apr. 2017-04-21 16:30 17 om 16.30 uur 2017-04-21 16:30 uur

Als u de lokale vertakking van de openbare repository wilt laden, hebt u cd nodig om de gedeelde repository te openen en gebruikt u de volgende code:

 git push -u origin branchname 
-8
26 июня '15 в 12:37 2015-06-26 12:37 het antwoord wordt gegeven door shankar kumar 26 juni '15 om 12:37 uur 2015-06-26 12:37

Zie andere vragen over of Ask a Question