-
pull.ff onlyoupull.rebase true- Ambas as configurações servem para evitar a criação acidental de um commit de merge ao executar
git pullquando a branch divergiu da branch upstream. pull.rebase trueé o mesmo que executargit pull --rebasetodas as vezes.pull.ff onlyé o mesmo que executargit pull --ff-onlytodas as vezes.- Não faz sentido usar as duas configurações ao mesmo tempo, porque
--ff-onlysobrescreve--rebase.
- Ambas as configurações servem para evitar a criação acidental de um commit de merge ao executar
-
merge.conflictstyle zdiff3- Configuração que torna conflitos de merge mais fáceis de ler.
diff3altera a forma como os conflitos de merge são mostrados no padrão, exibindo o código original no meio.zdiff3é uma versão aprimorada dodiff3e costuma ser considerada melhor.
-
rebase.autosquash true- Recurso que facilita corrigir commits antigos.
- Se você fizer um commit com
git commit --fixup OLD_COMMIT_ID, ao executargit rebase --autosquash maino commitfixup!será combinado automaticamente com o alvo.
-
rebase.autostash true- Executa automaticamente
git stashegit stash popantes e depois degit rebase.
- Executa automaticamente
-
push.default simple,push.default current- Configuram o push automático da branch atual para uma branch remota com o mesmo nome.
push.default simpleé a configuração padrão e só funciona quando a branch já está rastreando uma branch remota.push.default currentsempre faz push da branch local para a branch remota com o mesmo nome.
-
init.defaultBranch main- Cria a branch
mainem vez demasterao inicializar um novo repositório.
- Cria a branch
-
commit.verbose true- Adiciona o diff completo do commit no editor de texto usado para escrever a mensagem, ajudando a lembrar o que foi alterado.
-
rerere.enabled true- Lembra como você resolveu conflitos de merge durante
git rebasee os resolve automaticamente.
- Lembra como você resolveu conflitos de merge durante
-
help.autocorrect 10- O recurso de autocorreção do git verifica erros de digitação, mas não executa automaticamente o comando corrigido.
- Para executar automaticamente, defina
help.autocorrectcomo1,10,immediateouprompt.
-
core.pager delta- É o “pager” usado para exibir a saída de
git diff,git log,git showe outros comandos. - Define
delta, uma ferramenta avançada de visualização de diff com realce de sintaxe.
- É o “pager” usado para exibir a saída de
-
diff.algorithm histogram- O algoritmo de diff padrão costuma causar problemas quando a ordem das funções muda.
diff.algorithm histogrammostra isso de forma mais clara.
-
core.excludesfile: .gitignore global- Define um arquivo gitignore global aplicado a todos os repositórios.
-
includeIf: configurações separadas de git para uso pessoal e de trabalho- Usado para configurar endereços de e-mail diferentes para repositórios pessoais e de trabalho.
-
url."git@github.com:".insteadOf 'https://github.com/'- Substitui automaticamente
https://github.comporgit@github.com:.
- Substitui automaticamente
-
fsckobjects: prevenção de corrupção de dados- Configuração que detecta corrupção de dados de forma agressiva e já salvou a equipe algumas vezes.
-
Configurações relacionadas a submodule
status.submoduleSummary truediff.submodule logsubmodule.recurse true
-
Outras configurações
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 trueefetch.prunetagsgpg.format sshlog.date isomerge.keepbackup falsemerge.tool meldpush.followtags truerebase.missingCommitsCheck errorrebase.updateRefs true
-
Como configurar
- Em geral, a configuração é feita com
git config --global NAME VALUE. - Para remover uma opção, edite manualmente o
~/.gitconfig.
- Em geral, a configuração é feita com
-
Configurações alteradas após escrever este texto
diff.algorithm histogrambranch.sort -committerdatemerge.conflictstyle zdiff3
-
Encerrando
- É útil perguntar a muitas pessoas quais são suas configurações favoritas e listar as mais mencionadas.
Opinião do GN⁺
- O ponto mais importante deste texto é que ele permite conhecer opções de configuração do git usadas com frequência por desenvolvedores.
- Para engenheiros de software iniciantes que usam git, essas configurações podem ajudar a aumentar a eficiência do trabalho e resolver problemas do dia a dia.
- Em especial, configurações como
merge.conflictstyle zdiff3erebase.autosquash truepodem reduzir problemas no processo de colaboração ao facilitar a resolução de conflitos de merge e o gerenciamento do histórico de commits.
4 comentários
Para remover uma opção, também dá para usar o comando
git config --global --unset NAME.Para verificar suas configurações, adicione
git config --list.No meu ambiente principal de desenvolvimento eu tinha isso configurado, mas em outros ambientes não estava, então já aconteceu de eu ficar pensando "por que isso não funciona?.." kkk. Como desenvolvedores usam Git todos os dias, seria bom se houvesse mais interesse por esse tipo de configuração do Git.
Comentários do Hacker News
core.autocrlfesafecrlfgitattributes, se necessárioaliasno.gitconfigrebase.autosquashe o atalhofixuppull.rebasetambém é importante, masfixupé usado com mais frequênciainsteadOfadvice.statusHints,include.path,remote "origin".fetch,interactive.singleKeye outras.gitconfigalias,tag,tar,log,pull,diff,difftool,pager,safe,adviceeinitdeltacomo pageruser.useConfigOnlypara usar vários e-mailsuser.email, o e-mail é configurado ao fazer commit em um novo repositóriomerge.conflictstylediff3fornece mais informações para resolver conflitoscore.commentChar,alias.newtask,alias.zip,git checkout -,format.pretty, configurações dodeltabranch.sort.gitconfigalias.lg,alias.hist,alias.quick-push,alias.search,user,coreeurlquick-pushO conteúdo acima resume as configurações pessoais de
.gitconfigcompartilhadas por usuários nos comentários do Hacker News e as dicas de configuração do Git que eles preferem. As configurações têm como foco aumentar a eficiência no uso do Git, automatizar tarefas específicas e melhorar a experiência do usuário.