git config

In dit document zullen we “een diepgaande blik werpen op het git config commando. We hebben kort git config gebruik op onze pagina Een opslagplaats opzetten. Het git config commando is een handige functie die wordt gebruikt om Git-configuratiewaarden in te stellen op een globaal of lokaal project niveau. Deze configuratieniveaus komen overeen met .gitconfig tekstbestanden. Door git config uit te voeren, wordt een configuratietekstbestand gewijzigd. We behandelen de algemene configuratie-instellingen zoals e-mail, gebruikersnaam en editor. We zullen Git-aliassen bespreken, waarmee u snelkoppelingen kunt maken voor veelgebruikte Git-bewerkingen. Door vertrouwd te raken met git config en de verschillende Git-configuratie-instellingen kunt u een krachtige, aangepaste Git-workflow maken .

Gebruik

Het meest basale gebruik van git config is om het aan te roepen met een configuratienaam, die de ingestelde waarde zal weergeven op die naam. Configuratienamen zijn tekenreeksen die door punten zijn gescheiden en die bestaan uit een “sectie” en een “sleutel” op basis van hun hiërarchie. Bijvoorbeeld: user.email

 

In dit voorbeeld is e-mail een onderliggende eigenschap van het gebruikersconfiguratieblok. Dit zal het geconfigureerde e-mailadres retourneren, indien aanwezig, dat Git zal associëren met lokaal gemaakte commits.

git configuratieniveaus en bestanden

Voordat we git config gebruik verder bespreken, laten we even de tijd nemen om de configuratieniveaus te bespreken. Het git config commando kan argumenten accepteren om aan te geven op welk configuratieniveau gewerkt moet worden. De volgende configuratieniveaus zijn beschikbaar:

  • --local

Standaard git config zal naar een lokaal niveau schrijven als er geen configuratieoptie wordt doorgegeven. Configuratie op lokaal niveau wordt toegepast op de contextrepository git config wordt aangeroepen in. Lokale configuratiewaarden worden opgeslagen in een bestand dat kan worden gevonden in de .git-map van de opslagplaats: .git/config

  • --global

Configuratie op globaal niveau is gebruikers- specifiek, wat betekent dat het wordt toegepast op een gebruiker van het besturingssysteem. Globale configuratiewaarden worden opgeslagen in een bestand dat zich in de homedirectory van een gebruiker bevindt. ~ /.gitconfig op Unix-systemen en C:\Users\\.gitconfig op Windows

  • --system

Configuratie op systeemniveau wordt op een hele machine toegepast. Dit geldt voor alle gebruikers op een besturingssysteem en alle opslagplaatsen. Het configuratiebestand op systeemniveau bevindt zich in een gitconfig -bestand buiten het systeemhoofdpad. $(prefix)/etc/gitconfig op Unix-systemen. Op Windows is dit bestand te vinden op C:\Documents and Settings\All Users\Application Data\Git\config op Windows XP, en in C:\ProgramData\Git\config op Windows Vista en nieuwer.

De volgorde van prioriteit voor configuratieniveaus is dus: lokaal, globaal, systeem. Dit betekent dat bij het zoeken naar een configuratiewaarde, Git zal starten op lokaal niveau en naar het systeemniveau zal borrelen.

Een waarde schrijven

Uitbreiden op wat we al weten over git config, laten we eens kijken naar een voorbeeld waarin we een waarde schrijven:

 

Dit voorbeeld schrijft de waarde naar de configuratienaam user.email. Het gebruikt de --global vlag, dus deze waarde is ingesteld voor de huidige gebruiker van het besturingssysteem.

git config editor – core.editor

Veel Git-commando’s zullen een teksteditor starten om om verdere invoer te vragen. Een van de meest voorkomende gevallen voor git config configureert welke editor Git zou moeten gebruiken. Hieronder staat een tabel met populaire editors en overeenkomende git config commando’s:

Merge tools

In het geval van een merge conflict, zal Git een “merge tool” starten. Standaard gebruikt Git een interne implementatie van f het gewone Unix diff-programma. De interne Git-diff is een minimale samenvoegconflictviewer. Er zijn veel externe samenvoegconflicten van derden die in plaats daarvan kunnen worden gebruikt. Voor een overzicht van verschillende merge tools en configuratie, zie onze gids met tips en tools om conflits met Git op te lossen.

Gekleurde outputs

Git ondersteunt gekleurde terminal output die helpt bij het snel lezen van Git output. U kunt uw Git-uitvoer aanpassen om een persoonlijk kleurenthema te gebruiken. Het git config commando wordt gebruikt om deze kleurwaarden in te stellen.

color.ui

Dit is de hoofdvariabele voor Git-kleuren. Als je het instelt op false, wordt alle uitvoer van de gekleurde terminal van Git uitgeschakeld.

 

Standaard color.ui is ingesteld op auto, wat kleuren zal toepassen op de directe outputstroom van de terminal.Bij de automatische instelling wordt de uitvoer van kleurcodes weggelaten als de uitvoerstroom wordt omgeleid naar een bestand of doorgesluisd naar een ander proces.

U kunt de color.ui -waarde altijd instellen op past ook kleurcode-uitvoer toe bij het omleiden van de uitvoerstroom naar bestanden of pijpen. Dit kan onbedoeld problemen veroorzaken, aangezien de ontvangende pipe mogelijk geen kleurgecodeerde invoer verwacht.

Git-kleurwaarden

Naast color.ui , zijn er veel andere gedetailleerde kleurinstellingen. Net als color.ui, kunnen deze kleurinstellingen allemaal worden ingesteld op false, auto of always. Deze kleurinstellingen kunnen ook een specifieke kleurwaarde hebben. Enkele voorbeelden van ondersteunde kleurwaarden zijn:

  • normaal
  • zwart
  • rood
  • groen
  • geel
  • blauw
  • magenta
  • cyaan
  • wit

Kleuren kunnen ook worden gespecificeerd als hexadecimale kleurcodes zoals # ff0000, of ANSI 256 kleurwaarden als uw terminal dit ondersteunt.

Git-kleurconfiguratie-instellingen

color.branch

  • Configureert de uitvoerkleur van het Git branch commando

color.branch. slot >

  • Deze waarde is ook van toepassing op Git branch uitvoer. slot > is een van de volgende:
    • 1. current: de huidige branch
    • 2. lokaal: een lokale vestiging
    • 3. remote: een remote branch refs / remotes
    • 4. stroomopwaarts: een stroomopwaartse volgvertakking
    • 5. plain: any other ref

color.diff

  • Past kleuren toe op git diff, git log, en git show uitvoer

color.diff .slot >

  • Een slot configureren > waarde onder color.diff vertelt git op welk deel van de patch een specifieke kleur moet worden gebruikt.
    • 1. context: de contexttekst van de diff. Git-context zijn de regels tekstinhoud die worden weergegeven in een diff of patch die wijzigingen markeert.
    • 2. plain: een synoniem voor context
    • 3. meta: past kleur toe op de meta-informatie van de diff
    • 4. frag: past kleur toe op de “hunk header” of “functie in hunk header”
    • 5. oud: past een kleur toe op de verwijderde regels in de diff
    • 6. nieuw: kleurt de toegevoegde regels van de diff
    • 7. commit: kleuren commit headers binnen de diff
    • 8. witruimte: stelt een kleur in voor eventuele witruimtefouten in een diff

color.decorate. slot >

  • Pas de kleur aan voor git log --decorate uitvoer. De ondersteunde waarden voor slot > zijn: branch, remoteBranch, tag, stash, of HEAD. Ze zijn respectievelijk van toepassing op lokale branches, remote tracking branches, tags, gestashte wijzigingen en HEAD.

color.grep

  • Past kleur toe op de uitvoer van git grep.

color.grep. slot >

  • Ook van toepassing op git grep. De variabele slot > specificeert welk deel van de grep-uitvoer de kleur moet toepassen.
    • 1. context: niet-overeenkomende tekst in contextregels
    • 2. bestandsnaam: bestandsnaamvoorvoegsel
    • 3. functie: functienaam regels
    • 4. linnennummer: voorvoegsel regelnummer
    • 5. match: overeenkomende tekst
    • 6. matchContext: overeenkomende tekst in contextregels
    • 7. matchSelected: overeenkomende tekst in geselecteerde regels
    • 8. geselecteerd: niet-overeenkomende tekst in geselecteerde regels
    • 9. scheidingsteken: scheidingstekens tussen velden op een regel (:, -, en =) en tussen hunks (-)

8. color.interactive

  • Deze variabele past kleur toe voor interactieve prompts en displays. Voorbeelden zijn git add --interactive en git clean --interactive

9. color.interactive.slot >

  • De variabele slot > kan worden gespecificeerd om specifieker te targeten ” interactieve output “. De beschikbare waarden voor > zijn: prompt, header, help, error; en elke handeling op de overeenkomstige interactieve output.

color.pager

  • Schakelt gekleurde uitvoer in of uit wanneer de pager in gebruik is

color.showBranch

  • Schakelt kleurenuitvoer in of uit voor het git show branch commando

12. color.status

  • Een booleaanse waarde die kleurenuitvoer voor Git-status in- of uitschakelt

13. color.status.slot >

Wordt gebruikt om een aangepaste kleur te specificeren voor gespecificeerde git-statuselementen. slot > ondersteunt de volgende waarden:

  • 1.header
    • Richt zich op de koptekst van het statusgedeelte
  • 2. toegevoegd of bijgewerkt
    • Beide doelbestanden die zijn toegevoegd maar niet vastgelegd
  • 3. changed
    • Richt zich op bestanden die zijn gewijzigd maar niet zijn toegevoegd aan de git-index
  • 4. untracked
    • Richt zich op bestanden die niet door Git worden gevolgd
  • 5. branch
    • Past kleur toe op de huidige branch
  • 6. nobranch
    • De kleur waarin de waarschuwing “geen vertakking” wordt getoond.
  • 7. unmerged
    • Kleurenbestanden die niet-samengevoegde wijzigingen hebben

Aliassen

U bent wellicht bekend met het concept van aliassen van de opdrachtregel van uw besturingssysteem; zo niet, dan zijn het aangepaste snelkoppelingen die bepalen welk commando zal worden uitgebreid naar langere of gecombineerde commando’s. Aliassen besparen u de tijd en energiekosten van het typen van veelgebruikte commando’s. Git biedt zijn eigen aliasysteem. Een veelvoorkomend gebruik van Git-aliassen wordt korter het commit commando. Git aliassen worden opgeslagen in Git configuratie bestanden. Dit betekent dat je het git config commando kunt gebruiken om aliassen te configureren.

 

In dit voorbeeld wordt een ci-alias gemaakt voor de opdracht git commit. U kunt vervolgens git commit aanroepen door git ci. Aliassen kunnen ook verwijzen naar andere aliassen om krachtige combo’s te maken.

 

In dit voorbeeld wordt een aliasaanpassing gemaakt die de ci-alias in een nieuwe alias die --amend flag gebruikt.

Opmaak & witruimte

Git heeft verschillende “witruimte” -functies die kunnen worden geconfigureerd om witruimte te markeren problemen bij het gebruik van git diff. De witruimteproblemen worden gemarkeerd met de geconfigureerde kleur color.diff.whitespace

De volgende functies zijn standaard ingeschakeld:

  • blank-at-eol markeert verweesde spaties aan het einde van een regel
  • space-before-tab markeert een spatie die vóór een tab-teken verschijnt bij het inspringen van een regel
  • blank-at-eof markeert lege regels die aan het einde van een bestand zijn ingevoegd

De volgende functies zijn standaard uitgeschakeld

  • indent-with-non-tab markeert een regel die is ingesprongen met spaties in plaats van tabs
  • tab-in-indent markeert een eerste tab inspringen als een fout
  • trailing-space is een afkorting voor zowel blank-at-eol als blank-at-eof
  • cr-at-eol highlights een regelterugloop aan het einde van de regel
  • tabwidth= bepaalt hoeveel tekenposities een tab inneemt. De standaardwaarde is 8. Toegestane waarden zijn 1-63

Samenvatting

In dit artikel hebben we het gebruik van de git config command. We hebben besproken hoe het commando een overtuigende methode is voor het bewerken van onbewerkte git config bestanden op het bestandssysteem. We hebben gekeken naar basis lees- en schrijfbewerkingen voor configuratie-opties. We hebben de algemene configuratiepatronen bekeken:

  • Hoe de Git-editor te configureren
  • Hoe configuratieniveaus te overschrijven
  • Hoe configuratiestandaarden te resetten
  • Hoe git-kleuren aan te passen

In het algemeen is git config een helper-tool die een snelkoppeling biedt voor het bewerken van raw git config bestanden op schijf. We hebben diepgaande persoonlijke aanpassingsopties behandeld. Basiskennis van git-configuratie-opties is een vereiste voor het opzetten van een repository. Zie onze gids daar voor een demonstratie van de basisprincipes.

Write a Comment

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *