Options de configuration Git populaires
(jvns.ca)-
pull.ff onlyoupull.rebase true- Ces deux réglages servent à éviter de créer par erreur un commit de fusion lors de l’exécution de
git pulllorsque la branche a divergé de la branche amont. pull.rebase truerevient à exécutergit pull --rebaseà chaque fois.pull.ff onlyrevient à exécutergit pull --ff-onlyà chaque fois.- Utiliser les deux en même temps n’a pas de sens, car
--ff-onlyremplace--rebase.
- Ces deux réglages servent à éviter de créer par erreur un commit de fusion lors de l’exécution de
-
merge.conflictstyle zdiff3- Réglage qui rend les conflits de fusion plus lisibles.
diff3modifie la façon dont les conflits de fusion sont affichés par défaut en montrant le code d’origine au milieu.zdiff3est une version améliorée dediff3, généralement considérée comme meilleure.
-
rebase.autosquash true- Fonction qui facilite la modification d’anciens commits.
- Si vous créez un commit avec
git commit --fixup OLD_COMMIT_ID, alors lors de l’exécution degit rebase --autosquash main, le commitfixup!est automatiquement fusionné avec sa cible.
-
rebase.autostash true- Exécute automatiquement
git stashpuisgit stash popavant et aprèsgit rebase.
- Exécute automatiquement
-
push.default simple,push.default current- Permet de pousser automatiquement la branche courante vers une branche distante du même nom.
push.default simpleest le réglage par défaut et ne fonctionne que si la branche suit déjà une branche distante.push.default currentpousse toujours la branche locale vers une branche distante portant le même nom.
-
init.defaultBranch main- Crée la branche
mainau lieu demasterlors de la création d’un nouveau dépôt.
- Crée la branche
-
commit.verbose true- Ajoute le diff complet du commit dans l’éditeur de texte utilisé pour rédiger le message de commit, ce qui aide à se souvenir de ce qui a été modifié.
-
rerere.enabled true- Mémorise la façon dont vous avez résolu les conflits de fusion pendant
git rebaseet les résout automatiquement ensuite.
- Mémorise la façon dont vous avez résolu les conflits de fusion pendant
-
help.autocorrect 10- La correction automatique de git vérifie les fautes de frappe mais n’exécute pas automatiquement la commande corrigée.
- Pour l’exécuter automatiquement, définissez
help.autocorrectsur1,10,immediateouprompt.
-
core.pager delta- Le « pager » utilisé pour afficher la sortie de
git diff,git log,git show, etc. - Configure
delta, un outil avancé d’affichage des diff avec coloration syntaxique.
- Le « pager » utilisé pour afficher la sortie de
-
diff.algorithm histogram- L’algorithme de diff par défaut pose souvent problème lorsque l’ordre des fonctions change.
diff.algorithm histograml’affiche de façon plus claire.
-
core.excludesfile:.gitignoreglobal- Configure un fichier gitignore global appliqué à tous les dépôts.
-
includeIf: configurations git séparées pour le personnel et le travail- Utilisé pour configurer des adresses e-mail différentes pour les dépôts personnels et professionnels.
-
url."git@github.com:".insteadOf 'https://github.com/'- Remplace automatiquement
https://github.compargit@github.com:.
- Remplace automatiquement
-
fsckobjects: prévention de la corruption des données- Réglage qui a sauvé l’équipe plusieurs fois en détectant activement la corruption des données.
-
Réglages liés aux submodules
status.submoduleSummary truediff.submodule logsubmodule.recurse true
-
Autres réglages
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 trueetfetch.prunetagsgpg.format sshlog.date isomerge.keepbackup falsemerge.tool meldpush.followtags truerebase.missingCommitsCheck errorrebase.updateRefs true
-
Méthode de configuration
- En général, on configure ces options avec
git config --global NAME VALUE. - Pour supprimer une option, il faut modifier
~/.gitconfigmanuellement.
- En général, on configure ces options avec
-
Réglages que l’auteur a changés après avoir écrit cet article
diff.algorithm histogrambranch.sort -committerdatemerge.conflictstyle zdiff3
-
Conclusion
- Il est utile de demander aux gens quels sont leurs réglages favoris et de lister ceux qui sont le plus souvent cités.
L’avis de GN⁺
- Le plus important dans cet article est qu’il permet de découvrir les options de configuration git que les développeurs utilisent fréquemment.
- Pour les ingénieurs logiciels débutants qui utilisent git, ces réglages peuvent améliorer l’efficacité du travail et aider à résoudre les problèmes du quotidien.
- En particulier, des réglages comme
merge.conflictstyle zdiff3ourebase.autosquash truefacilitent la résolution des conflits de fusion et la gestion de l’historique des commits, ce qui peut réduire les problèmes rencontrés pendant la collaboration.
4 commentaires
Pour supprimer une option, vous pouvez aussi utiliser la commande
git config --global --unset NAME.Pour vérifier votre configuration, ajoutez
git config --list.
Dans mon environnement de développement principal, c’était configuré, puis dans un autre environnement ça ne l’était pas, et je me suis demandé pourquoi ça ne marchait pas… haha. Comme les développeurs utilisent Git tous les jours, j’aimerais que l’intérêt pour tout ce qui touche aux paramètres Git soit plus fort.
Avis Hacker News
core.autocrlfetsafecrlfgitattributessi nécessairealiasdans.gitconfigrebase.autosquashet aliasfixuppull.rebaseest aussi important, maisfixupest utilisé plus souventinsteadOfadvice.statusHints,include.path,remote "origin".fetch,interactive.singleKey, etc..gitconfigalias,tag,tar,log,pull,diff,difftool,pager,safe,advice,initdeltacomme pageruser.useConfigOnlypour utiliser plusieurs adresses e-mailuser.emailest commenté, puis l’adresse e-mail est définie au moment du commit dans un nouveau dépôtmerge.conflictstylediff3fournit davantage d’informations pour résoudre les conflitscore.commentChar,alias.newtask,alias.zip,git checkout -,format.pretty, configurationdeltabranch.sort.gitconfigalias.lg,alias.hist,alias.quick-push,alias.search,user,core,urlquick-pushpermet de définir un workflow simpleLe contenu ci-dessus résume les configurations
.gitconfigpersonnelles partagées par des utilisateurs dans les commentaires de Hacker News, ainsi que leurs astuces Git favorites. Ces réglages visent à améliorer l’efficacité d’utilisation de Git, à automatiser certaines tâches et à améliorer l’expérience utilisateur.