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:
- Skapa förvaret på GitHub (om tillämpligt)
- Kopiera webbadressen som du har fått i formen
https://github.com/USERNAME/REPO_NAME.git
- 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
- För att verifiera att det lades till, kör
- 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.