Git Server

git config --global init.defaultBranch main

Git Client

https://blog.gitbutler.com/how-git-core-devs-configure-git/

verhindert dass Windows Zeilenenden zu CRLF umwandelt
Unix:

git config --global core.autocrlf input

Windows:

git config --global core.autocrlf true

ortiert Tags nach Version für bessere Übersicht
git config --global tag.sort version:refname

listet Branches nach letztem Commit-Date sortiert (neueste zuletzt)
git config --global branch.sort -committerdate

Verwendet einen besseren Diff-Algorithmus für lesbarere Änderungen
git config --global diff.algorithm histogram

Hebt verschobenen Code in Diffs hervor
git config --global diff.colorMoved plain

Erkennt umbenannte Dateien in Diffs
git config --global diff.renames true

Pusht nur den aktuellen Branch zu seinem Upstream
git config --global push.default simple

Verknüpft neue Branches automatisch mit Upstream beim ersten Push
git config --global push.autoSetupRemote true

Verwendet VS Code als Standardeditor für Git
git config --global core.editor "code --wait"

Pusht Version Tags zusammen mit Commits
git config --global push.followTags true

Löscht entfernte Tracking-Branches, die nicht mehr existieren
git config --global fetch.prune true

Entfernt veraltete Tags lokal beim Fetch git config --global fetch.pruneTags true

Holt alle Remotes statt nur origin git config --global fetch.all true

Zeigt Diff im Commit-Editor für bessere Übersicht bei merges zum beispiel git config --global commit.verbose true

Verwendet Rebase statt Merge beim Pull, hält den Verlauf sauber
(Kann Konflikte verursachen, die schwieriger zu lösen sind )

git config --global pull.rebase true

Git Attributes

*.php text eol=lf