Zoeken…


Invoering

Na het wijzigen, staging en plegen van code met Git, is push vereist om je wijzigingen beschikbaar te maken voor anderen en je lokale wijzigingen over te dragen naar de repository-server. In dit onderwerp wordt besproken hoe je code correct kunt pushen met Git.

Syntaxis

  • git push [-f | --force] [-v | --verbose] [<remote> [<refspec> ...]]

parameters

Parameter Details
--dwingen Overschrijft de externe ref zodat deze overeenkomt met uw lokale ref. Kan ervoor zorgen dat de externe repository commits verliest, dus wees voorzichtig .
--verbose Ren uitgebreid.
<Remote> De externe opslagplaats die de bestemming is van de push-bewerking.
<Refspec> ... Geef op welke externe ref moet worden bijgewerkt met welke lokale ref of welk object.

Opmerkingen

Stroomopwaarts en stroomafwaarts

In termen van bronbeheer, ben je "downstream" wanneer je kopieert (kloon, checkout, etc.) vanuit een repository. Informatie stroomde "stroomafwaarts" naar u toe.

Wanneer u wijzigingen aanbrengt, wilt u ze meestal "stroomopwaarts" terugsturen zodat ze in die repository terechtkomen, zodat iedereen die uit dezelfde bron haalt met dezelfde wijzigingen werkt. Dit is meestal een sociale kwestie van hoe iedereen zijn werk kan coördineren in plaats van een technische vereiste voor broncontrole. U wilt uw wijzigingen in het hoofdproject opnemen, zodat u geen uiteenlopende ontwikkelingslijnen volgt.

Soms lees je over pakket- of releasemanagers (de mensen, niet de tool) die praten over het indienen van wijzigingen in "upstream". Dat betekent meestal dat ze de originele bronnen moesten aanpassen zodat ze een pakket voor hun systeem konden maken. Ze willen die wijzigingen niet blijven maken, dus als ze ze "stroomopwaarts" naar de oorspronkelijke bron sturen, zouden ze in de volgende release niet met hetzelfde probleem moeten omgaan.

( Bron )

Duwen

git push

zal uw code pushen naar uw bestaande upstream. Afhankelijk van de push-configuratie, zal het ofwel code pushen van je huidige branch (standaard in Git 2.x) of van alle branches (standaard in Git 1.x).

Geef externe repository op

Wanneer je met git werkt, kan het handig zijn om meerdere externe repositories te hebben. Om een externe repository op te geven waarnaar u wilt pushen, voegt u gewoon de naam toe aan de opdracht.

git push origin

Geef tak op

Zeg feature_x om naar een specifieke branch te feature_x :

git push origin feature_x

Stel de externe volgvertakking in

Tenzij de branch waaraan je werkt oorspronkelijk afkomstig is van een externe repository, zal het eenvoudigweg de eerste keer niet werken om git push te gebruiken. Je moet het volgende commando uitvoeren om git te vertellen om de huidige branch naar een specifieke remote / branch combinatie te pushen

git push --set-upstream origin master

Hier is master de filiaalnaam op de externe origin . Je kunt -u als afkorting voor --set-upstream .


Pushen naar een nieuwe repository

Om te pushen naar een repository die je nog niet hebt gemaakt of die leeg is:

  1. Maak de repository op GitHub (indien van toepassing)
  2. Kopieer de URL die u heeft gekregen in de vorm https://github.com/USERNAME/REPO_NAME.git
  3. Ga naar je lokale repository en voer git remote add origin URL
    • Om te controleren of het is toegevoegd, voer je git remote -v
  4. Voer git push origin master

Uw code zou nu op GitHub moeten staan

Zie voor meer informatie Een externe opslagplaats toevoegen


Uitleg

Pushcode betekent dat git de verschillen van je lokale commits en remote analyseert en ze naar de stroomopwaartse weg schrijft. Wanneer push slaagt, worden uw lokale repository en externe repository gesynchroniseerd en kunnen andere gebruikers uw commits zien.

Zie Opmerkingen voor meer informatie over de concepten "stroomopwaarts" en "stroomafwaarts".

Forceer duwen

Soms, als je lokale wijzigingen hebt die niet compatibel zijn met externe wijzigingen (dat wil zeggen, als je de externe branch niet snel vooruit kunt spoelen, of de externe branch geen directe voorouder van je lokale branch is), is de enige manier om je wijzigingen door te drukken een force push .

git push -f

of

git push --force

Belangrijke aantekeningen

Hierdoor worden eventuele externe wijzigingen overschreven en komt uw afstandsbediening overeen met uw lokale.

Let op: met deze opdracht kan de externe repository commits verliezen . Bovendien wordt het ten zeerste afgeraden om een force-push uit te voeren als u deze externe opslagplaats met anderen deelt, omdat hun geschiedenis elke overschreven vastlegging behoudt, waardoor hun werk niet meer synchroon loopt met de externe opslagplaats.

Als vuistregel geldt dat u alleen push moet drukken wanneer:

  • Niemand behalve u heeft de wijzigingen doorgevoerd die u probeert te overschrijven
  • Je kunt iedereen dwingen om een nieuwe kopie te klonen na de gedwongen push en iedereen zijn wijzigingen erop laten toepassen (mensen kunnen je hiervoor haten).

Push een specifiek object naar een remote branch

Algemene syntaxis

git push <remotename> <object>:<remotebranchname>

Voorbeeld

git push origin master:wip-yourname

Duwt je master branch naar de wip-yourname branch van oorsprong (meestal de repository van waaruit je hebt gekloond).


Verwijder externe tak

Het verwijderen van de externe vertakking is het equivalent van een leeg object erop duwen.

git push <remotename> :<remotebranchname>

Voorbeeld

git push origin :wip-yourname

Verwijdert de externe branch wip-yourname

In plaats van de dubbele punt te gebruiken, kunt u ook de vlag --delete gebruiken, die in sommige gevallen beter leesbaar is.

Voorbeeld

git push origin --delete wip-yourname

Push een enkele commit

Als je een enkele commit in je branch hebt die je naar een remote wilt pushen zonder iets anders te pushen, kun je het volgende gebruiken

git push <remotename> <commit SHA>:<remotebranchname>

Voorbeeld

Uitgaande van een git history zoals deze

eeb32bc Commit 1 - already pushed
347d700 Commit 2 - want to push
e539af8 Commit 3 - only local
5d339db Commit 4 - only local

om alleen commit 347d700 naar remote master te pushen, gebruik de volgende opdracht

git push origin 347d700:master

Het standaard push-gedrag wijzigen

Current werkt de branch op de externe repository bij die een naam deelt met de huidige werkende branch.

git config push.default current

Eenvoudig pusht naar de stroomopwaartse tak, maar werkt niet als de stroomopwaartse tak iets anders wordt genoemd.

git config push.default simple

Stroomopwaarts duwt naar de stroomopwaartse tak, ongeacht hoe het wordt genoemd.

git config push.default upstream

Matching duwt alle takken die overeenkomen op de lokale en de externe git config push.default stroomopwaarts

Nadat u de gewenste stijl hebt ingesteld, gebruikt u

git push 

om de externe repository bij te werken.

Push tags

git push --tags

Pusht alle git tags in de lokale repository die zich niet in de externe bevinden.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow