Sök…


Introduktion

Efter att ha ändrat, iscensatt och gjort kod med Git krävs att du trycker på för att göra dina ändringar tillgängliga för andra och överföra dina lokala ändringar till förvaringsservern. Det här ämnet kommer att täcka hur du korrekt trycker kod med Git.

Syntax

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

parametrar

Parameter detaljer
--tvinga Skriv över fjärrreferensen så att den matchar din lokala ref. Kan göra att fjärrförvaret förlorar åtaganden, så använd försiktigt .
--mångordig Kör verbalt.
<Remote> Fjärrförvaret som är destination för push-operationen.
<Refspec> ... Ange vilken fjärrreferens som ska uppdateras med vilken lokal ref eller objekt.

Anmärkningar

Uppströms nedströms

När det gäller källkontroll är du "nedströms" när du kopierar (klon, kassa, etc.) från ett arkiv. Information flödade "nedströms" till dig.

När du gör ändringar vill du vanligtvis skicka tillbaka dem "uppströms" så att de gör det till det förvaret så att alla som drar från samma källa arbetar med samma ändringar. Detta är mestadels en social fråga om hur alla kan samordna sitt arbete snarare än ett tekniskt krav på källkontroll. Du vill få dina förändringar till huvudprojektet så att du inte spårar olika utvecklingslinjer.

Ibland läser du om paket- eller releashanterare (folket, inte verktyget) och pratar om att skicka ändringar till "uppströms". Det betyder vanligtvis att de var tvungna att justera de ursprungliga källorna så att de kunde skapa ett paket för sitt system. De vill inte fortsätta att göra dessa förändringar, så om de skickar dem "uppströms" till den ursprungliga källan, borde de inte behöva ta itu med samma problem i nästa utgåva.

( Källa )

Skjuta på

git push

kommer att trycka din kod till din befintliga uppströms. Beroende på pushkonfigurationen kommer den antingen att skicka kod från din nuvarande gren (standard i Git 2.x) eller från alla grenar (standard i Git 1.x).

Ange fjärrlager

När du arbetar med git kan det vara praktiskt att ha flera fjärrförvar. Om du vill ange ett fjärrlager att trycka på lägger du bara till namnet på kommandot.

git push origin

Ange gren

För att gå till en specifik gren, säg feature_x :

git push origin feature_x

Ställ in fjärrspårningsgrenen

Såvida inte den gren du arbetar med kommer från ett fjärrlager, helt enkelt att använda git push fungerar inte första gången. Du måste utföra följande kommando för att berätta för git att driva den nuvarande grenen till en specifik kombination av fjärr / gren

git push --set-upstream origin master

Här är master filialnamnet på det avlägsna origin . Du kan använda -u som en kortfattning för - --set-upstream .


Pushing till ett nytt arkiv

För att gå till ett arkiv som du inte har gjort ännu eller är tomt:

  1. Skapa förvaret på GitHub (om tillämpligt)
  2. Kopiera webbadressen som du har fått i formen https://github.com/USERNAME/REPO_NAME.git
  3. Gå till ditt lokala arkiv och köra git remote add origin URL
    • För att verifiera att det lades till, kör git remote -v
  4. Kör git push origin master

Din kod ska nu finnas på GitHub

För mer information se Lägga till ett fjärrlager


Förklaring

Push-kod betyder att git kommer att analysera skillnaderna i dina lokala åtaganden och fjärrkontroll och skicka dem för att skrivas i uppströms. När push lyckas synkroniseras ditt lokala arkiv och fjärrlager och andra användare kan se dina åtaganden.

För mer information om begreppen "uppströms" och "nedströms", se Anmärkningar .

Force Pushing

Ibland, när du har lokala förändringar som är oförenliga med fjärrförändringar (dvs. när du inte kan spola framåt den fjärrgrenade eller fjärrgreningen inte är en direkt förfader till din lokala gren), är det enda sättet att driva dina förändringar en kraftpress .

git push -f

eller

git push --force

Viktiga anteckningar

Detta kommer att skriva över eventuella fjärrändringar och din fjärrkontroll matchar din lokala.

Observera: Att använda detta kommando kan leda till att fjärrförvaret förlorar åtaganden . Dessutom rekommenderas det starkt att inte göra en kraftpress om du delar detta fjärrlagringsutrymme med andra, eftersom deras historia kommer att behålla alla överskrivna åtaganden, vilket gör att deras arbete blir synkroniserat med fjärrlagret.

Som tumregel, tvinga bara tryck när:

  • Ingen utom du drog de ändringar du försöker skriva över
  • Du kan tvinga alla att klona en ny kopia efter den tvingade pushen och få alla att tillämpa sina ändringar på det (folk kan hata dig för detta).

Tryck ett specifikt objekt till en fjärrgren

Allmän syntax

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

Exempel

git push origin master:wip-yourname

Tryckar din masterfilial till wip-yourname ursprungsgrenen (för det mesta, förvaret som du klonade från).


Ta bort fjärrgren

Att radera den fjärrgren är motsvarigheten till att skjuta ett tomt objekt till den.

git push <remotename> :<remotebranchname>

Exempel

git push origin :wip-yourname

Tar bort wip-yourname

Istället för att använda tjocktarmen kan du också använda - - ta bort flaggan, som är bättre läsbar i vissa fall.

Exempel

git push origin --delete wip-yourname

Tryck på ett enda engagemang

Om du har ett enda engagemang i din gren som du vill driva till en fjärrkontroll utan att trycka på något annat kan du använda följande

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

Exempel

Antagande en githistoria som denna

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

att driva endast begå 347d700 till fjärr mästare använda följande kommando

git push origin 347d700:master

Ändra standard push-beteende

Aktuell uppdaterar grenen på fjärrförvaret som delar ett namn med den nuvarande arbetsgrenen.

git config push.default current

Enkel tryck till uppströmsgrenen, men fungerar inte om uppströmsgrenen kallas något annat.

git config push.default simple

Uppströms skjuter till uppströmsgrenen, oavsett vad den kallas.

git config push.default upstream

Matchning trycker på alla grenar som matchar den lokala och fjärrkontrollen git config push.default uppströms

När du har ställt in den önskade stilen använder du

git push 

för att uppdatera fjärrförvaret.

Tryck på taggar

git push --tags

Skjuter alla git tags i det lokala lagret som inte finns i fjärrkontrollen.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow