Beliebte Git-Konfigurationsoptionen
(jvns.ca)-
pull.ff onlyoderpull.rebase true- Beide Einstellungen sollen verhindern, dass beim Ausführen von
git pullversehentlich ein Merge-Commit erzeugt wird, wenn der Branch vom Upstream-Branch abweicht. pull.rebase trueentspricht dem Ausführen vongit pull --rebasejedes Mal.pull.ff onlyentspricht dem Ausführen vongit pull --ff-onlyjedes Mal.- Beide Einstellungen gleichzeitig zu verwenden ergibt keinen Sinn, da
--ff-only--rebaseüberschreibt.
- Beide Einstellungen sollen verhindern, dass beim Ausführen von
-
merge.conflictstyle zdiff3- Eine Einstellung, die Merge-Konflikte leichter lesbar macht.
diff3ändert die Art, wie Merge-Konflikte in der Standardkonfiguration angezeigt werden, indem der ursprüngliche Code in der Mitte eingeblendet wird.zdiff3ist eine verbesserte Version vondiff3und gilt als die bessere Wahl.
-
rebase.autosquash true- Eine Funktion, die es einfacher macht, ältere Commits zu korrigieren.
- Wenn man mit
git commit --fixup OLD_COMMIT_IDcommittet, wird beim Ausführen vongit rebase --autosquash mainderfixup!-Commit automatisch mit dem Ziel-Commit zusammengeführt.
-
rebase.autostash true- Führt vor und nach
git rebaseautomatischgit stashundgit stash popaus.
- Führt vor und nach
-
push.default simple,push.default current- Konfiguriert Git so, dass der aktuelle Branch automatisch auf einen Remote-Branch mit demselben Namen gepusht wird.
push.default simpleist die Standardeinstellung und funktioniert nur, wenn der Branch bereits einen Remote-Branch trackt.push.default currentpusht den lokalen Branch immer auf einen Remote-Branch mit demselben Namen.
-
init.defaultBranch main- Erzeugt beim Anlegen eines neuen Repositorys statt
masterden Branchmain.
- Erzeugt beim Anlegen eines neuen Repositorys statt
-
commit.verbose true- Fügt im Texteditor zum Schreiben der Commit-Nachricht den vollständigen Commit-Diff ein, damit man sich besser an die Änderungen erinnert.
-
rerere.enabled true- Merkt sich während
git rebase, wie Merge-Konflikte gelöst wurden, und behebt sie automatisch erneut.
- Merkt sich während
-
help.autocorrect 10- Die Autokorrektur von git prüft Tippfehler, führt den korrigierten Befehl aber nicht automatisch aus.
- Um ihn automatisch ausführen zu lassen, setzt man
help.autocorrectauf1,10,immediateoderprompt.
-
core.pager delta- Der „Pager“, der zur Anzeige der Ausgabe von
git diff,git log,git showusw. verwendet wird. - Setzt
deltaals erweitertes Diff-Anzeige-Tool mit Syntax-Highlighting.
- Der „Pager“, der zur Anzeige der Ausgabe von
-
diff.algorithm histogram- Der Standard-Diff-Algorithmus verursacht oft Probleme, wenn sich die Reihenfolge von Funktionen ändert.
diff.algorithm histogramstellt das klarer dar.
-
core.excludesfile: globale.gitignore- Konfiguriert eine globale
.gitignore-Datei, die auf alle Repositorys angewendet wird.
- Konfiguriert eine globale
-
includeIf: getrennte Git-Konfigurationen für privat und beruflich- Wird verwendet, um unterschiedliche E-Mail-Adressen für private und berufliche Repositorys zu konfigurieren.
-
url."git@github.com:".insteadOf 'https://github.com/'- Ersetzt
https://github.comautomatisch durchgit@github.com:.
- Ersetzt
-
fsckobjects: Schutz vor Datenbeschädigung- Eine Einstellung, die Datenbeschädigungen aktiv erkennt und das Team schon einige Male gerettet hat.
-
Einstellungen rund um Submodule
status.submoduleSummary truediff.submodule logsubmodule.recurse true
-
Weitere Einstellungen
blame.ignoreRevsFile .git-blame-ignore-revsbranch.sort -committerdatecolor.ui falsecommit.cleanup scissorscore.autocrlf falsecore.editor emacscredential.helper osxkeychaindiff.tool difftasticdiff.colorMoved defaultdiff.colorMovedWS allow-indentation-changediff.context 10fetch.prune trueundfetch.prunetagsgpg.format sshlog.date isomerge.keepbackup falsemerge.tool meldpush.followtags truerebase.missingCommitsCheck errorrebase.updateRefs true
-
So konfiguriert man sie
- In der Regel setzt man sie mit
git config --global NAME VALUE. - Um eine Option zu entfernen, bearbeitet man
~/.gitconfigmanuell.
- In der Regel setzt man sie mit
-
Einstellungen, die nach dem Schreiben dieses Artikels geändert wurden
diff.algorithm histogrambranch.sort -committerdatemerge.conflictstyle zdiff3
-
Fazit
- Es ist nützlich, viele Leute nach ihren bevorzugten Einstellungen zu fragen und die am häufigsten genannten aufzulisten.
Meinung von GN⁺
- Das Wichtigste an diesem Artikel ist, dass man die von Entwicklern häufig verwendeten Git-Konfigurationsoptionen kennenlernen kann.
- Für Einsteiger unter den Softwareentwicklern, die Git verwenden, können diese Einstellungen helfen, die Arbeitseffizienz zu steigern und alltägliche Probleme zu lösen.
- Besonders Einstellungen wie
merge.conflictstyle zdiff3oderrebase.autosquash truekönnen das Lösen von Merge-Konflikten und die Verwaltung der Commit-Historie erleichtern und so Probleme in der Zusammenarbeit verringern.
4 Kommentare
Zum Löschen einer Option kann man auch den Befehl
git config --global --unset NAMEverwenden.Wenn Sie Ihre Einstellungen überprüfen möchten, fügen Sie
git config --listhinzu.Ich habe schon erlebt, dass ich es in meiner Haupt-Entwicklungsumgebung eingerichtet hatte, in einer anderen Umgebung aber nicht, und mich dann gefragt habe, warum es nicht funktioniert … haha. Da Entwickler Git täglich nutzen, wäre es schön, wenn das Interesse an Git-Konfigurationen und allem, was damit zusammenhängt, noch größer würde.
Hacker-News-Kommentare
core.autocrlfundsafecrlfgitattributesüberschrieben werdenalias-Konfiguration in.gitconfigrebase.autosquashund der Aliasfixuppull.rebaseist ebenfalls wichtig, aberfixupwird noch häufiger verwendetinsteadOfadvice.statusHints,include.path,remote "origin".fetch,interactive.singleKeyusw. werden erwähnt.gitconfig-Konfigurationalias,tag,tar,log,pull,diff,difftool,pager,safe,advice,initdeltaals Pageruser.useConfigOnlyfür die Nutzung mehrerer E-Mail-Adressenuser.emailauskommentieren und beim Commit in neuen Repositories die E-Mail setzenmerge.conflictstylezu änderndiff3liefert mehr Informationen zur Konfliktlösungcore.commentChar,alias.newtask,alias.zip,git checkout -,format.pretty,delta-Konfigurationbranch.sort.gitconfig-Konfigurationalias.lg,alias.hist,alias.quick-push,alias.search,user,core,urlquick-pushlässt sich ein einfacher Workflow definierenDer obige Inhalt ist eine Zusammenfassung persönlicher
.gitconfig-Einstellungen und bevorzugter Git-Konfigurationstipps, die Nutzer in Hacker-News-Kommentaren geteilt haben. Der Fokus der Einstellungen liegt darauf, die Effizienz bei der Nutzung von Git zu erhöhen, bestimmte Aufgaben zu automatisieren und die User Experience zu verbessern.