Git config - configurando o git
Criado em: 09/12/2011
Para quem está usando o git diariamente sabe que tem comandos que digitamos freqüentemente como git status
, git commit
, git checkout
entre outros. Iremos ver como digitar menos e mais algumas configurações legais no git.
Git config
É onde você define configurações do git que podem ser globais que serão válidas para todos os seus repositórios ou configurações de um repositório em especifico.
Configurações globais
Para inserir alguma configuração com o git usamos o comando git config
e caso queiramos que nossa configuração seja valida para todos os repositórios que criarmos passamos o parâmetro --global
ficando git config --global
.
Provavelmente você já executou o seguinte comando, passando seus dados obviamente, ao instalar o git:
caso tenha seguido algum tutorial e não saiba o que esta acontecendo aqui, o que você está fazendo é definir seu nome e email para o git que será usado em todos os seus repositórios.
Configurações por repositório
Se ao passarmos o parâmetro --global
definimos a informação para todos os repositórios, ao omitirmos o parâmetro definimos a informação para apenas um de nossos repositórios.
Lembrando de executar o comando estando dentro do diretório onde encontra se o repositório que quer definir as configurações. Exemplo:
Assim você pode definir o email para o email de sua empresa por exemplo enquanto nos demais repositórios o email usado seria o seu pessoal.
Lembrando que o git é esperto o suficiente e só sobrescreve o que você redefinir e as demais configurações ele mantém. Ou seja no exemplo anterior ainda teriamos o valor nome definido como “Seu nome” em que definimos usando as configurações globais.
Git alias
Agora que entendemos como definimos as configurações no git, iremos ver como podemos definir alias, um apelido, para os comandos que digitamos freqüentemente. Veja abaixo os alias que costumo definir como global.
Agora com os alias definidos podemos fazer git ci
ao invés de git commit
quando formos realizar um commit. Além dos demais alias que definimos. Lembrando que você pode definir outros alias que julgar interessante.
Detalhe que defino como global pois quero isto válido em todos os meus repositórios.
Um log bem mais poderoso
Ao executarmos git log
obtemos o log de nossos commits. No entanto vem bastante informação e em um formato não muito agradável de se ler. Podemos melhorar o nosso log adicionando o seguinte alias.
Agora ao executarmos o comando git lg
teremos um log com mais informações úteis do que o log padrão, lembrando que ainda poderá usar o git log
normalmente.
Não se esqueça que podemos ainda usar o git lg -p
para vermos o diff do que foi alterado nos commits.
Mais configurações
Editor de texto
Em alguns momentos um editor de texto é chamado pelo git, como ao darmos um commit sem mensagem com o comando git commit
. Para escolhermos o nosso editor de preferencia podemos definir a configuração com o comando:
Usei aqui o comando para chamar o textmate, e como está em seu blog devemos passar o parâmetro -w
e o parâmetro adicional l1
que passei é para o cursor se posicionar na primeira linha do arquivo.
Para o pessoal de linux, que não quiser o Vim, poderíamos definir o gedit por exemplo usando o comando:
Colorindo o terminal
Se ao executar um git status
por exemplo e não vermos colorido o que foi alterado, ou os novos arquivo por exemplo. É bom definir a configuração abaixo.
que como você deve imaginar, colore as informações que o git lhe enviar no terminal.
O git te corrigindo ao digitar errado
Em alguns momentos pode acontecer de digitarmos errado como por exemplo digitar git lg
ao invés de git log
. Para não tomarmos um aviso de comando errado simplesmeste, podemos deixar o git definir por nos o que ele acha que tentamos executar, para isso habilitamos a seguinte configuração:
Assim ele nos dará um aviso e executará o comando que ele acredita que tentamos digitar.
Evitando tiro de shotgun com o git ao dermos push
Como o Argentino diz o git da um tiro de shotgun ao executarmos o git push
, isso por que os commits de outros branches são enviados, mesmo estando em um branch especifico.
Imagine que tenhamos 3 branches master, feature/awesome-thing e feature/other-thing, ambos feature branches tem commits locais que ainda não foram enviados, estando no branch feature/awesome-thing e executar um git push
os commits dos 2 feature branches serão enviados, pode não ser o comportamento esperado no momento.
Utilizando o:
dizemos para o git que no git push
ele deve enviar o conteúdo do branch atual para um branch de mesmo nome. Sendo assim se executassemos o git push
no exemplo anterior, apenas o branch feature/awesome-thing seria enviado, o que faz sentido pois é o branch que estamos no momento. Mais informações e outras configurações possiveis podem ser encontradas no manual do git.
Não precisando resolver conflitos já resolvidos
É comum quando estamos em um feature branch que tenha uma vida relativamente longa, fazermos merge do branch master em nosso feature branch. Em algum destes merges talvez tenhamos que resolver algum conflito. O problema ocorre quando formos fazer merge do nosso feature branch no master, pois teremos que resolver os mesmos conflitos. Para resolvermos isto podemos ativar o rerere
(Reuse recorded resolution of conflicted merges) com o seguinte comando.
Documentação em HTML
Caso queira que a documentação, ao digitar git help comando
seja em HTML pode usar a seguinte configuração:
Assim ao digitar por exemplo git help config
será aberto o browser e poderá ver a documentação do comando digitado em HTML.
Lembrando que para ver a documentação em HTML a mesma deve ser instalada, mais informações de como instalar aqui.
Listando as configurações
Agora que você já sabe definir configurações tem que ter um lugar onde seja possível ver o que esta configurado, e para isso usamos o comando
que executado fora de qualquer repositório listará nossas configurações globais. E ao estar dentro de algum repositório, listará as configurações do repositório em especifico.
E se ainda assim dentro do diretório do repositório quiser listar as configurações globais. Podemos usar o comando:
Shell
Caso goste de definir seus alias no shell, pode usar o mesmo para definir comandos do git. No mac utilizaríamos o ~/.bash_profile ou o ~/.bash_profile no linux, exemplo:
Comentários
Comentários powered by Disqus