Als ontwikkelaar gebruik je waarschijnlijk dagelijks de Git CLI (Command Line Interface). Het herhaaldelijk schrijven van dezelfde oude commando’s kan echter arbeidsintensief zijn, vooral wanneer de commando’s lang zijn. Hier komen Git-aliassen van pas.
In dit artikel leer je hoe je je Git-commando’s kunt vereenvoudigen door aliassen te gebruiken.
Inhoudsopgave
-
Hoe je Git-aliassen toevoegt via het globale Git-configuratiebestand (Aanbevolen)
-
Hoe u aangepaste commando’s maakt voor meer complexe snelkoppelingen
Vereisten
-
Kennis van Git.
-
Git Bash geïnstalleerd (optioneel maar aanbevolen voor Windows-gebruikers).
-
Een IDE zoals VS Code (dit is ook optioneel).
Wat Zijn Git Aliassen?
Git-aliassen zijn aangepaste snelkoppelingen voor bestaande Git-opdrachten, waardoor veelvoorkomende taken sneller en gemakkelijker worden. Ze laten je je eigen opdrachten definiëren, waardoor je snelkoppelingen precies kunt aanpassen naar jouw wensen.
Je hebt twee hoofdopties om git-aliassen toe te voegen/maken in je git-configuratie, door je Git-configuratiebestand te gebruiken of ze rechtstreeks toe te voegen via de CLI (terminal/opdrachtregel).
Hoe Git Aliassen Toevoegen Via het Globale Git Configuratiebestand (Aanbevolen)
Deze optie houdt in dat je je globale git-configuratiebestand opent en je git-aliassen onderaan het bestand toevoegt.
Hoe Je Voorkeurs-Git-Editor Instellen
Stel uw standaard Git-configuratie-editor software in, bijvoorbeeld, ik gebruik VS Code om mijn Git-configuratiebestand te bewerken, maar u kunt elke teksteditor/code-editor gebruiken die u verkiest.
Voer dit commando uit om Kladblok als uw voorkeurseditor op Windows (CMD/PowerShell) in te stellen:
git config --global core.editor "notepad"
Voer dit commando uit om VS Code als uw voorkeurseditor op Windows & MacOS /Linux in te stellen:
git config --global core.editor "code --wait"
Om een andere standaardeditor in te stellen, zoek online naar “Stel {editor} in als standaard Git-editor,” en vervang {editor}
door uw favoriete app.
Hoe het Git-configuratiebestand te openen
Open uw favoriete terminal en voer het volgende commando in. Dit opent het globale Git-configuratiebestand (git config —global
), in de bewerkingsmodus (-e
).
git config --global -e
U kunt het git-configuratiebestand direct openen vanuit de volgende locaties:
Mac Os: Thuisdirectory → verborgen bestanden tonen (Cmd + Shift + H) → .gitconfig
Windows: C:\Users\YourUsername\
→ toon vervolgens verborgen bestanden (in Weergave) → en vind .gitconfig
Linux: Thuisdirectory → verborgen bestanden tonen (Ctrl + H) → .gitconfig
Hoe een Git-alias toe te voegen via uw configuratiebestand
Als u voor de eerste keer Git-aliasen toevoegt, open dan uw .gitconfig
bestand, voeg [alias]
aan het einde toe en lijst dan uw snelkoppelingen hieronder op. Dit vertelt Git dat dit aliasen zijn. Voeg uw gewenste alias toe (de verkorte opdracht die u wilt uitvoeren).
Het formaat van een git-alias is <alias> = <command>
, dus we hebben:
co = checkout
cob = checkout -b
Uitleg van de bovenstaande voorbeelden:
co = checkout
dit koppelt het git checkout
commando aan een korter git co
commando. Je zou dan git co feature/123
in je terminal invoeren.
Je hoeft git
niet voor het commando te typen, aangezien de configuratie dit automatisch toevoegt, omdat het weet dat het commando dat je aan het koppelen bent een Git-commando is.
Opmerking: Alle parameters die aan het commando worden doorgegeven, worden alleen toegepast op het uiteindelijke commando dat binnen de alias wordt aangeroepen.
Meer aliassen kunnen op deze manier worden toegevoegd, waarbij snelkoppelingen worden gekoppeld aan bestaande git-commando’s. Het opslaan en sluiten van het bestand maakt de aliassen beschikbaar in je terminal.
Hoe aliassen toe te voegen in de CLI
Als je een meer gestroomlijnde aanpak wilt voor het toevoegen van Git-aliassen, kun je ze rechtstreeks vanuit de terminal/opdrachtregel toevoegen.
Neem de bovenstaande voorbeelden, we kunnen deze rechtstreeks op de volgende manier toevoegen:
Het formaat van het commando is: git config --global alias.{alias} "{origineel commando}"
:
git config --global alias.co "checkout"
#of
git config --global alias.cob "checkout -b"
Het is zo eenvoudig als dat!
Hoe aangepaste commando’s te maken voor complexere snelkoppelingen
Oké, dit lijkt geweldig, maar het is eigenlijk niet zo indrukwekkend – we verwijderen alleen een paar tekens. We kunnen ze echter veel nuttiger maken, we kunnen onze commando’s maken met behulp van shell-commando’s.
Laten we het volgende voorbeeld nemen, een commando dat ik vaak gebruik!
new-work = !git checkout main && git pull && git cob
Deze alias combineert meerdere Git-opdrachten in één shell-opdracht. Het !
teken vertelt Git om het als een shell-opdracht te behandelen, en niet als een standaard Git-opdracht.
Zonder !
beschouwt Git de alias als een Git-opdracht (bijvoorbeeld, checkout
wordt git checkout
). Met !
weet Git dat het als een shell-opdracht moet worden uitgevoerd zonder git
ervoor te zetten.
Door deze opdrachten te koppelen, kunnen we veel nuttigere aliassen schrijven. De bovenstaande zal:
-
Eerst de
main
branch uitchecken. -
Met de
&&
operator betekent het dat de andere opdrachten alleen worden uitgevoerd als de vorige succesvol was. -
Ten tweede, zal het de wijzigingen van
main
ophalen. -
Ten slotte, maak een nieuwe branch aan vanaf de
main
branch met behulp van onze andere aliasgit cob
.
De uiteindelijke opdracht kan vervolgens parameters accepteren (zoals de originele Git-opdracht zou doen), zodat het als volgt kan worden gebruikt:
git new-work 'feature/new-work-from-main'
Hoe parameters te gebruiken in alle opdrachten
Tot nu toe konden we alleen onze parameters doorgeven aan het uiteindelijke git-commando in onze alias. Maar wat als we parameters willen doorgeven aan enkele, zo niet alle, commando’s binnen de alias? Dit kunnen we bereiken door een shellfunctie te gebruiken.
Neem het volgende voorbeeld:
new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
Hierboven gebruiken we een shellfunctie die invoerparameters verwerkt.
Uitleg:
-
!f()
:-
De
!
vertelt Git dat de alias als een shellcommando moet worden geïnterpreteerd in plaats van een standaard Git-commando. -
f()
definieert een shellfunctief
waarmee we meerdere commando’s in sequentie kunnen uitvoeren.
-
-
Alles binnen
{ }
wordt uitgevoerd binnen de functief()
. -
git checkout \”$1”'\
: Voert een geparameteriseerde Git-opdracht uit, waarbij$1
is ontsnapt en zal worden vervangen door de 1e parameter die aan de alias is doorgegeven. De\"
ontsnappingssequenties rond$1
staan namen van branches met spaties toe. -
&&
is een logische operator die ervoor zorgt dat elke opdracht alleen wordt uitgevoerd als de vorige slaagt. Alsgit checkout "$1"
faalt, worden de daaropvolgende opdrachten niet uitgevoerd. -
git checkout -b \”$2”\
: Maakt een nieuwe branch met de naam van de tweede parameter zoals eerder. -
;
: Markeert het einde van def()
functie; -
f
: De uiteindelijkef
roept de aliasfunctie onmiddellijk aan, wat betekent dat wanneer je de alias aanroept, deze de functie declareert en deze vervolgens onmiddellijk aanroept.
Gebruik:
git new-work development task/feat-123
Andere Nuttige Aliassen
[alias]
co = checkout
cob = checkout -b
s = status
tidy-up = !git checkout main && git branch | grep -v "main" | xargs git branch -D
latest = !git checkout main && git pull
new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
done = !git push -u origin HEAD
save = !git add -A && git commit
saveM = !git add -A && git commit -m
br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate
Samenvatting
co:
Checkout gegeven tak → git co task/feat-123
cob
: Maakt een nieuwe tak aan vanuit de huidige tak → git cob feature/123
s
: Roept git status
aan om de status van de huidige git-tak te bekijken → git s
tidy-up
: Verwijdert alle lokale takken behalve main
→ git tidy-up
latest
: Haalt de laatste wijzigingen op van de externe main
tak → git latest
new-work
: Maakt een nieuwe tak (2e parameter) aan vanuit de 1e parameter tak → git new-work main feat/123
git done
: Duwt de huidige tak naar de externe repository (origin
) en stelt deze in als de upstream-tak. Dit kan nuttig zijn bij het duwen van je eerste commit en je krijgt de fout:fatal: De huidige tak heeft geen upstream-tak. Om de huidige tak te duwen en de externe als upstream in te stellen, gebruik git push --set-upstream origin
save
: Zal eenvoudigweg alle gewijzigde bestanden toevoegen en committen, waarbij je standaard Git-editor wordt geopend en een commitbericht wordt gevraagd → git save
savem
: Zal hetzelfde doen als hierboven, maar in plaats van je editor te openen, kun je een commitbericht inline doorgeven → git savem ‘Taak123: voeg index.html toe
br:
Dit lijkt ingewikkeld, maar is niet zo ingewikkeld als het lijkt, maar benadrukt wel de kracht van aliassen. In essentie past het de uitvoerindeling van git branch
aan om een gedetailleerde, kleurgecodeerde lijst van branches weer te geven, gesorteerd op de meest recente commitdatum, het zal er voor elke lokaal aanwezige branch ongeveer uitzien zoals hieronder afgebeeld.
Dat was een introductie tot Git-aliassen en enkele nuttige voorbeelden van aliassen die je als starter aan je configuratie kunt toevoegen.
Zoals altijd, als je erover wilt praten of meer wilt horen over toekomstige artikelen, kun je me volgen op Twitter.
Source:
https://www.freecodecamp.org/news/how-to-simplify-your-git-commands-with-git-aliases/