Vraag Hoe push ik een nieuw lokaal filiaal naar een externe Git-repository en volg het ook?


Ik wil het volgende kunnen doen:

  1. Maak een lokale vestiging op basis van een andere (externe of lokale) vestiging (via git branch of git checkout -b)

  2. Druk op de plaatselijke vestiging naar de externe repository (publiceren), maar maak het traceerbaar dus git pull en git push zal onmiddellijk werken.

Hoe doe ik dat?

ik weet over --set-upstream in Git 1.7, maar dat is een actie na de creatie. Ik wil een manier vinden om een ​​soortgelijke verandering aan te brengen wanneer ik de branch naar de externe repository push.


3649
2018-05-04 12:58


oorsprong


antwoorden:


In Git 1.7.0 en later kun je een nieuw filiaal afrekenen:

git checkout -b <branch>

Bestanden bewerken, toevoegen en vastleggen. Dan duwen met de -u (kort voor --set-upstream) keuze:

git push -u origin <branch>

Git zal tijdens het pushen de trackinginformatie instellen.


5749
2018-06-03 20:50



Als u uw repo niet met anderen deelt, is dit handig om te pushen alle je takken naar de afstandsbediening, en --set-upstream tracking correct voor u:

git push --all -u

(Niet precies waar het OP om vroeg, maar deze one-liner is behoorlijk populair)

Als je je repo deelt met anderen is dit niet echt een goede vorm omdat je de repo verstopt met al je experimentele vertakkingen.


448
2018-01-20 11:36



Voorafgaand aan de introductie van git push -u, er was geen git push optie om te verkrijgen wat u wenst. U moest nieuwe configuratieverklaringen toevoegen.

Als u een nieuw filiaal aanmaakt met:

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

U kunt de git config commando om te vermijden dat de .git/config het dossier.

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

Of u kunt de. Handmatig bewerken .git/config bestand met trackinginformatie naar deze branche.

[branch "branchB"]
    remote = origin
    merge = refs/heads/branchB

132
2018-05-04 13:03



Simpel gezegd, om een ​​nieuw te maken lokaal tak, doe:

git branch <branch-name>

Om het naar de. Te duwen afgelegen repository, do:

git push -u origin <branch-name>

111
2018-04-24 12:09



Een kleine variatie van de oplossingen die hier al worden gegeven:

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

    git checkout -b branchname
    
  2. Duw de lokale vestiging naar de externe repository (publiceren), maar maak het wel traceerbaar git pull en git push zal onmiddellijk werken

    git push -u origin HEAD
    

    Gebruik makend van HEAD is een "handige manier om de huidige vertakking naar dezelfde naam op de afstandsbediening te duwen". Bron: https://git-scm.com/docs/git-push In Git-termen is HEAD (in hoofdletters) een verwijzing naar de bovenkant van de huidige tak (boom).

    De -u optie is gewoon kort voor --set-setupstream. Hiermee wordt een upstream-trackingreferentie voor de huidige branch toegevoegd. je kunt dit verifiëren door in je .git / config-bestand te kijken:

    Enter image description here


55
2017-07-05 08:13



Ik veronderstel dat je al een project hebt gekloond zoals:

git clone http://github.com/myproject.git
  1. Maak vervolgens in je lokale exemplaar een nieuw filiaal en bekijk het:

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

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

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

NOTITIE: Ik ga ervan uit dat je je server hebt geïnstalleerd. Als dat niet zo is, zal het niet werken. Een goede uitleg is hier.

TOEGEVOEGD

Voeg een remote branch toe:

git push origin master:new_feature_name

Controleer of alles goed is (haal de oorsprong op en geef een overzicht van externe branches):

git fetch origin
git branch -r

Maak een lokale vestiging en volg de remote branch:

git checkout -tb new_feature_name origin/new_feature_name

Update alles:

git pull

27
2018-05-04 13: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 commits heb ik gedaan localBranch.


24
2018-03-20 11:13