Git
Configuratie
Zoeken…
Syntaxis
- git config [<bestandsoptie>] naam [waarde] # een van de meest voorkomende gevallen van git config
parameters
Parameter | Details |
---|---|
--system | Bewerkt het systeembrede configuratiebestand, dat voor elke gebruiker wordt gebruikt (onder Linux bevindt dit bestand zich op $(prefix)/etc/gitconfig ) |
--global | Bewerkt het globale configuratiebestand, dat wordt gebruikt voor elke repository waaraan u werkt (onder Linux bevindt dit bestand zich op ~/.gitconfig |
--local | Bewerkt het respository-specifieke configuratiebestand, dat zich bevindt in .git/config in uw repository; dit is de standaardinstelling |
Gebruikersnaam en e-mailadres
Direct nadat je Git hebt geïnstalleerd, moet je eerst je gebruikersnaam en e-mailadres instellen. Typ vanuit een shell:
git config --global user.name "Mr. Bean"
git config --global user.email [email protected]
-
git config
is het commando om opties te krijgen of in te stellen -
--global
betekent dat het configuratiebestand dat specifiek is voor uw gebruikersaccount wordt bewerkt -
user.name
enuser.email
zijn de sleutels voor de configuratievariabelen;user
is het gedeelte van het configuratiebestand.name
enemail
zijn de namen van de variabelen. -
"Mr. Bean"
en[email protected]
zijn de waarden die u in de twee variabelen opslaat. Let op de aanhalingstekens rond"Mr. Bean"
, die nodig zijn omdat de waarde die u opslaat een spatie bevat.
Meerdere git-configuraties
Je hebt maximaal 5 bronnen voor git-configuratie:
- 6 bestanden:
-
%ALLUSERSPROFILE%\Git\Config
(alleen Windows) - (systeem)
<git>/etc/gitconfig
, waarbij<git>
het git-installatiepad is.
(in Windows is dit<git>\mingw64\etc\gitconfig
) - (systeem)
$XDG_CONFIG_HOME/git/config
(alleen Linux / Mac) - (globaal)
~/.gitconfig
(Windows:%USERPROFILE%\.gitconfig
) - (lokaal)
.git/config
(binnen een git repo$GIT_DIR
) - een speciaal bestand (met
git config -f
), bijvoorbeeld gebruikt om de configuratie van submodules te wijzigen:git config -f .gitmodules ...
-
- de opdrachtregel met
git -c
:git -c core.autocrlf=false fetch
zou elke anderecore.autocrlf
doorfalse
, alleen voor datfetch
commando.
De volgorde is belangrijk: elke configuratie die in één bron is ingesteld, kan worden overschreven door een bron die eronder wordt vermeld.
git config --system/global/local
is de opdracht om 3 van die bronnen te vermelden, maar alleen git config -l zou alle opgeloste configs weergeven.
"opgelost" betekent dat het alleen de laatste overschreven configuratie-waarde weergeeft.
Sinds git 2.8, als je wilt zien welke configuratie uit welk bestand komt, typ je:
git config --list --show-origin
Instelling welke editor te gebruiken
Er zijn verschillende manieren om in te stellen welke editor moet worden gebruikt voor vastleggen, rebasen, etc.
Wijzig de configuratie-instelling van
core.editor
.$ git config --global core.editor nano
Stel de omgevingsvariabele
GIT_EDITOR
.Voor één opdracht:
$ GIT_EDITOR=nano git commit
Of voor alle opdrachten die in een terminal worden uitgevoerd. Opmerking: dit is alleen van toepassing totdat u de terminal sluit.
$ export GIT_EDITOR=nano
Om de editor voor alle terminalprogramma's te wijzigen, niet alleen Git, stelt u de omgevingsvariabele
VISUAL
ofEDITOR
. (ZieVISUAL
versusEDITOR
.)$ export EDITOR=nano
Opmerking: zoals hierboven geldt dit alleen voor de huidige terminal; uw shell heeft meestal een configuratiebestand waarmee u het permanent kunt instellen. (Voeg bij
bash
bijvoorbeeld de bovenstaande regel toe aan uw~/.bashrc
of~/.bash_profile
.)
Sommige teksteditors (meestal GUI-versies) kunnen slechts één exemplaar tegelijk uitvoeren en worden over het algemeen afgesloten als u er al een exemplaar van hebt geopend. Als dit het geval is voor je teksteditor, zal Git het bericht Aborting commit due to empty commit message.
zonder dat je eerst het commit bericht kunt bewerken. Als dit u overkomt, raadpleegt u de documentatie van uw teksteditor om te zien of deze een --wait
vlag (of iets dergelijks) heeft waardoor het pauzeert totdat het document is gesloten.
Regeleindes configureren
Beschrijving
Wanneer u werkt met een team dat verschillende besturingssystemen (OS) gebruikt in het hele project, kunt u soms in de problemen komen bij het verwerken van regeleinden.
Microsoft Windows
Wanneer u werkt met het Microsoft Windows-besturingssysteem (OS), zijn de regeleinden normaal gesproken van vorm - regelterugloop + regelinvoer (CR + LF). Het openen van een bestand dat is bewerkt met een Unix-machine zoals Linux of OSX kan problemen veroorzaken, waardoor het lijkt alsof tekst helemaal geen regeleinden heeft. Dit komt door het feit dat Unix-systemen alleen verschillende regeleinden van formulierlijnfeeds (LF) toepassen.
Om dit op te lossen, kunt u de volgende instructie uitvoeren
git config --global core.autocrlf=true
Bij het afrekenen zorgt deze instructie ervoor dat regeleinden worden geconfigureerd in overeenstemming met Microsoft Windows OS (LF -> CR + LF)
Unix Based (Linux / OSX)
Evenzo kunnen er problemen optreden wanneer de gebruiker op Unix-gebaseerd besturingssysteem probeert bestanden te lezen die zijn bewerkt op Microsoft Windows OS. Om te voorkomen dat onverwachte problemen worden uitgevoerd
git config --global core.autocrlf=input
Bij commit verandert dit de regeleindes van CR + LF -> + LF
configuratie voor slechts één opdracht
u kunt -c <name>=<value>
gebruiken om slechts één configuratie toe te voegen.
Om als een andere gebruiker te committeren zonder uw instellingen in .gitconfig te hoeven wijzigen:
git -c user.email = mail@example commit -m "some message"
Opmerking: voor dat voorbeeld hoef je niet zowel user.name
als user.email
, git zal de ontbrekende informatie van de vorige commits aanvullen.
Stel een proxy in
Als je achter een proxy zit, moet je Git erover vertellen:
git config --global http.proxy http://my.proxy.com:portnumber
Als u niet meer achter een proxy zit:
git config --global --unset http.proxy
Typefouten automatisch corrigeren
git config --global help.autocorrect 17
Dit maakt autocorrectie mogelijk in git en zal je vergeven voor je kleine fouten (bijv. git stats
plaats van git status
). De parameter die u help.autocorrect
bij help.autocorrect
bepaalt hoe lang het systeem moet wachten, in tienden van seconden, voordat het automatisch gecorrigeerde commando wordt toegepast. In het bovenstaande commando betekent 17 dat git 1,7 seconden moet wachten voordat het automatisch gecorrigeerde commando wordt toegepast.
Grotere fouten worden echter beschouwd als ontbrekende opdrachten, dus het typen van iets als git testingit
zou resulteren in testingit is not a git command.
Lijst en bewerk de huidige configuratie
Met Git config kun je aanpassen hoe git werkt. Het wordt vaak gebruikt om uw naam en e-mailadres of favoriete editor in te stellen of hoe samenvoegingen moeten worden gedaan.
Om de huidige configuratie te zien.
$ git config --list
...
core.editor=vim
credential.helper=osxkeychain
...
Om de configuratie te bewerken:
$ git config <key> <value>
$ git config core.ignorecase true
Als u van plan bent dat de wijziging waar is voor al uw repositories, gebruik dan --global
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --global core.editor vi
U kunt opnieuw een lijst maken om uw wijzigingen te bekijken.
Meerdere gebruikersnamen en e-mailadres
Sinds Git 2.13 kunnen meerdere gebruikersnamen en e-mailadressen worden geconfigureerd met behulp van een mapfilter.
Voorbeeld voor Windows:
.gitconfig
Bewerken: git config --global -e
Toevoegen:
[includeIf "gitdir:D:/work"]
path = .gitconfig-work.config
[includeIf "gitdir:D:/opensource/"]
path = .gitconfig-opensource.config
Notes - De volgorde is afhankelijk, de laatste die overeenkomt met "overwinningen".
- de
/
aan het einde is nodig - bijv."gitdir:D:/work"
zal niet werken. - het
gitdir:
voorvoegsel is vereist.
.gitconfig-work.config
Bestand in dezelfde map als .gitconfig
[user]
name = Money
email = [email protected]
.gitconfig-opensource.config
Bestand in dezelfde map als .gitconfig
[user]
name = Nice
email = [email protected]
Voorbeeld voor Linux
[includeIf "gitdir:~/work/"]
path = .gitconfig-work
[includeIf "gitdir:~/opensource/"]
path = .gitconfig-opensource
De bestandsinhoud en notities onder Windows.