VAGAS DE EMPREGO

balta.io balta.io
  • Cursos
  • Carreiras
  • Para sua Empresa
  • Livros
    • Background Services
    • Blazor com .NET 8
    • Segurança em APIs
    • Futuro do C# 12
    • Nullable Types
    • Clean Code
  • Blog

Seja Premium
balta.io

  • Cursos
  • Carreiras
  • Para sua Empresa
  • Agenda
  • Livros
    • Background Services
    • Blazor com .NET 8
    • Segurança em APIs
    • Futuro do C# 12
    • Nullable Types
    • Clean Code
  • Blog
  • Player
Seja Premium

Entre ou Cadastre-se

  • Home
  • Artigos
  • Trabalhando com mais de uma configuração do git em um único computador


👉 Temos uma versão mais atualizada deste artigo no nosso novo Blog

Trabalhando com mais de uma configuração do git em um único computador

Sumário

  1. Contextualizando
  2. Entendendo o arquivo .gitconfig
  3. Estabelecendo um padrão de organização
  4. Definindo as configurações específicas 1. Criando gitconfigs individuais 2. Setando o valor de cada gitconfig
  5. Incluindo as configuração no .gitconfig global
  6. Conclusão
  7. Referências

Contextualizando

Em algumas empresas que já trabalhei, precisei usar minha própria máquina para exercer a atividade de desenvolvimento de software. Nesse cenário, por muito tempo, eu tive uma grande dificuldade/questionamento:

Como eu poderia separar as configurações do git para os projetos pessoais e para os projetos profissionais?

Comecei a buscar por algumas soluções e logo no início, para não desprender o que achava que seria "muito tempo" em configurações, eu adotei a seguinte prática:

todos os projetos devem estar em um local seguro e dentro de um diretório chamado www, e toda vez que eu clonar um repo novo, dentro do projeto eu vou configurar localmente coisas como o e-mail e nome que irão na assinatura de cada commit.

E, por muito tempo, fiz assim:

  • Clonava um repositório
  • Acessava o repositório
  • efetuava as configs, como:
$ git config user.name "Xiquinho da silva"
$ git config user.email "oi@xiquinhodasilva"

Um belo dia, reparei que na verdade isso era muita perda de tempo, e era muito mais coisa... Era CHATO. Resolvi voltar a pesquisar com um único objetivo "dar voz a minha preguiça interior e fazer essas configurações uma única vez e esquecê-las depois..."

Felizmente, eu consegui e é isso quero compartilhar por aqui!

AVISO
Todas configurações aqui apresentadas foram feitas usando uma distro Linux. Portanto, você vai conseguir executar todos os passos em qualquer distro Linux, em um Mac e no Windows creio que apenas se seu workflow estiver dentro do WSL!
Sinta-se a vontade para complementar este artigo com uma maneira de implementar essas configurações em um ambiente Windows sem WSL.

Entendendo o arquivo .gitconfig

Este é um arquivo oculto responsável por armazenar as configurações globais ou locais do git em sua máquina, é nele que você vai encontrar, por exemplo, o nome que você definiu que deve ser exibido no log dos commits, o seu e-mail, é nele que você cria os aliases do git, etc. Você consegue manipular os valores deste arquivo utilizando o comando abaixo:

$ git config --local || --global || --system config value

Este arquivo vai ser o responsável por chamar as configurações que nós queremos para cada projeto, conforme veremos mais adiante.

Estabelecendo um padrão de organização

Para alcançar o nosso objetivo, precisamos antes definir um modelo de organização para nossos projetos, aqui vai uma sugestão:

  • Crie um diretório chamado www em um local de sua preferência;
  • Acesse este diretório e agora crie um diretório para sua empresa e outro para projetos pessoais
$ mkdir side-projects && mkdir empresa-qualquer

Isso é necessário, pois faremos com que o git sete uma configuração específica para cada um destes diretórios, dessa maneira, cada projeto que você clonar para side-projects terá uma configuração diferente do que foi aplicado para empresa-qualquer.

AVISO
Aqui estou usando dois diretórios apenas, mas você pode ter quantos você quiser, ok? Segue o fio...

Definindo as configurações específicas

Criando gitconfigs individuais

Volte para raíz de seu usuário, você pode usar o comando abaixo:

$ cd $HOME

ou

$ cd ~

Estando na raíz de seu usuário, devemos criar agora um arquivo .gitconfig para cada um dos diretórios que você criou dentro de www no passo anterior, você pode usar o comando abaixo:

$ touch .gitconfig-side-projects && touch .gitconfig-empresa-qualquer
Setando o valor de cada gitconfig

Agora, acesse esses arquivos criados através de seu terminal ou de um editor de texto de sua preferência. Eu usarei o querido vscode, podemos executar o seguinte comando:

$ code .gitconfig-side-projects

Com o arquivo aberto, é hora de começar nossa configuração, neste artigo vamos abordar tópicos simples como nome e e-mail, vamos lá!

copie e cole dentro do arquivo, o trecho abaixo:

[user]
    name = Seu Nome
    email = seuemail@email.com

Salve e retorne para raíz de seu usuário.

Repita o processo para todos os outros gitconfigs criados, lembrando de cada um deve ter uma configuração específica.

Incluindo as configurações no gitconfig global

Acesse através de seu terminal ou de um editor de texto de sua preferência o arquivo chamado .gitconfig.

AVISO
O arquivo .gitconfig está localizado na raíz de seu usuário

Copie e cole dentro do arquivo (a partir da última linha) o trecho abaixo:

[includeIf "gitdir:~/www/side-projects/"]
  path = ~/.gitconfig-side-projects
[includeIf "gitdir:~/www/empresa-qualquer"]
  path = ~/.gitconfig-empresa-qualquer  

Salve e retorne para raíz de seu usuário.

Basicamente, o que nós fizemos foi adicionar ao arquivo de configuração global do git condicionais que serão responsáveis por identificar qual o diretório em que um determinado projeto, que contenha o git inicializado, está e com isso setar o path específico para ele.

Como resultado, a cada commit que você realizar dentro, por exemplo, de ~/www/side-projects/ o que estará assinado como nome e e-mail foi o que você declarou no .gitconfig-side-projects.

Legal, não é?

Conclusão

Agora, você tem um ambiente pronto para receber N projetos e não vai precisar se preocupar com configurações iniciais do git. Isso vai conferir a você um pouco mais de agilidade e praticidade no dia a dia.

Referências

Confira aqui como está o meu arquivo de configuração global do git

Populares

Priority Queue

Priority Queue ou fila prioritária é um tipo de lista inclusa no C# 10 que permite que seus itens...


Implicit Operators no C#

Implicit Operators permitem adicionar comportamentos de conversão a objetos Built In ou complexos...


ASP.NET 5 – Autenticação e Autorização com Bearer e JWT

Este artigo atualmente utiliza a versão 5.0.0-rc.1 do ASP.NET/.NET, o que significa que ainda não...


Clean Code - Guia e Exemplos

Saiba como manter seu código limpo (Clean Code) seguindo algumas práticas sugeridas pelo Robert C...


Git e GitHub - Instalação, Configuração e Primeiros Passos

Git é um sistema de controle de versões distribuídas, enquanto GitHub é uma plataforma que tem o ...


Compartilhe este artigo



Conheça o autor

Liandro Silva

Liandro Silva

JavaScript Developer using React | React Native | NestJS

Atuando como desenvolvedor há mais de dois anos, tenho hoje como foco principal o Desenvolvimento Web (Back-end e Front-end). Passei por diversos segmentos no mercado, como por exemplo, Logística, E-learning, CX e Contabilidade, participando desde o levantamento de requisitos, codificação até o deploy da aplicação. Sempre preocupado em escrever um código limpo, um código escrito para o futuro, seguindo padrões de projeto e arquitetura. Além disso, prezo sempre pela experiência final do usuário, por isso, sempre estou atento a interações e/ou processos que otimizem a performance e acessibilidade.





3.156

Aulas disponíveis

294

horas de conteúdo

76.863

Alunos matriculados

53.474

Certificados emitidos





Comece de graça agora mesmo!

Temos mais de 21 cursos totalmente de graça e todos com certificado de conclusão.

Começar


Prefere algo mais Premium?

Conheça nossos planos



Premium anual

Compra única, parcelada em até
12x no cartão de crédito


12x R$

99

,79

=R$ 1.197,44
  • 1 ano de acesso
  • Acesso à todo conteúdo
  • Emissão de Certificado
  • Tira Dúvidas Online
  • 68 cursos disponíveis
  • 10 carreiras disponíveis
  • 161 temas de tecnologia
  • Conteúdo novo todo mês
  • Encontros Premium

Começar agora

Política de privacidade



Precisa de ajuda?

Dúvidas frequentes



  • Posso começar de graça?

    Sim! Basta criar sua conta gratuita no balta.io e começar seus estudos. Nós contamos com diversos cursos TOTALMENTE gratuitos e com certificado de conclusão.

  • Vou ter que pagar algo?

    Nós temos cursos gratuitos e pagos, porém você não precisa informar nenhum dado de pagamento para começar seus estudos gratuitamente conosco. Os cursos gratuitos são completos e com certificado de conclusão, você não paga nada por eles.

    Porém, caso queira algo mais Premium , você terá acesso à diversos benefícios que vão te ajudar ainda mais em sua carreira.

  • Por onde devo começar?

    Siga SEMPRE as nossas Carreiras , elas vão te orientar em todos os sentidos. Os cursos já estão organizados em categorias e carreiras para facilitar seu aprendizado.
    Nossa sugestão para aprendizado é começar pelo Backend e seguindo para Frontend e Mobile.

    • Backend
    • Frontend
    • Mobile

  • Os cursos ensinam tudo que preciso?

    Nenhum curso no mundo vai te ensinar tudo, desculpa ser sincero! Os cursos são uma base, eles fornecem por volta de 30% do que você precisa aprender, o resto é com você, com dedicação e MUITA prática.

  • O que eu devo estudar?

    Java ou .NET? Angular ou React? Xamarin ou Flutter? A resposta é simples e direta: "Você já sabe o básico?"

    Se você ainda não sabe BEM o básico, ou seja, os fundamentos, OOP, SOLID, Clean Code, está perdendo tempo estudando Frameworks ou até coisas mais avançadas como Docker. Foque nos seus objetivos primeiro.
    Agora se você está indeciso sobre qual Framework estudar, a boa notícia é que o mercado neste momento está bem aquecido e você tem várias oportunidade. Desta forma o que levaríamos em conta para tomar esta decisão seria:

    • Já sei o básico
    • O Framework/Tecnologia tem mercado onde eu estou (região)
    • O Framework/Tecnologia é utilizado em uma empresa onde quero atual
    • O Framework/Tecnologia resolve meu problema
    • Eu gosto de utilizar o Framework/Tecnologia

  • Estou pronto para estudar no balta.io?

    Com certeza! O primeiro passo é começar e você pode fazer isto agora mesmo!

    Começar de graça

Ainda tem dúvidas?





Assine nosso Newsletter

Receba em primeira mão todas as nossas novidades.

Cadastrar


balta.io

Sobre

  • Como funciona?
  • Seja Premium
  • Agenda
  • Blog
  • Todos os cursos

Cursos

  • Frontend
  • Backend
  • Mobile
  • Fullstack

Suporte

  • Termos de uso
  • Privacidade
  • Cancelamento
  • Central de ajuda

Redes Sociais

  • Telegram
  • Facebook
  • Instagram
  • YouTube
  • Twitch
  • LinkedIn
  • Discord