Skip to content

Configurando o Git

Git é um programa de versionamento de arquivos (funciona com todo o tipo de arquivo, mas é mais poderoso com arquivos de texto) que ao mesmo tempo segue a filosofia UNIX (tem apenas uma função, executada com maestria) e oferece ferramentas de versionamento extremamente robustas. Por essas característica, Git virou o padrão de versionamento de projeto de programação. Ser um desenvolvedor e não saber usar o Git é a mesma coisa que ser um jogador de futebol que não sabe calçar as chuteiras; pode até ser que consiga entrar em campo, mas é provável que passe o jogo todo escorregando.

Sendo assim, vamos aprender a calçar as chuteiras?

Boot process

Se você está usando o Linux, é bastante provável que já tenha o git instalado. Caso não tenha, basta instalar utilizando o gerenciador de pacotes:

Terminal window
sudo apt install git

Se você estiver utilizando outro sistema operacional, como Windows, você pode instalar o Git visitando o link. O processo de instalação vai ser como de outros aplicativos Windows. Vale destacar o que é instalado com ele:

  • Git – O próprio sistema de controle de versão Git.
  • Git Bash – Um terminal baseado em MinGW que fornece um ambiente similar ao Unix para rodar comandos do Git.
  • Git CMD – Um prompt de comando do Windows com suporte ao Git.
  • Git GUI – Uma interface gráfica básica para interagir com repositórios Git.
  • OpenSSH – Ferramenta para conexões seguras via SSH, necessária para clonar e interagir com repositórios remotos via SSH.
  • cURL – Uma ferramenta de linha de comando para transferências de dados via diversos protocolos (HTTP, HTTPS, FTP, etc.).
  • Credential Manager – Gerenciador de credenciais para armazenar logins de forma segura no Windows.
  • Perl (opcional) – Necessário para alguns scripts avançados do Git.
  • MinTTY – Um terminal alternativo usado pelo Git Bash, oferecendo uma experiência aprimorada em relação ao prompt do Windows.
  • Diff and Merge tools – Algumas ferramentas básicas para visualizar diferenças entre versões de arquivos.

Alguns terminais podem ser utilizados para acessar o Git. Recomendo utilizar o Git Bash, pode ser acessado clicando com o botão direito sobre um diretório e selecionar essa opção. Agora que temos uma instalação do git, vamos configurá-lo corretamente?

Desde o começo de 2022, o github não permite mais que você autentique seu acesso ao repositório para push e pull utilizando seu usuário e senha. O motivo disso? Segurança. A maneira obrigatória agora passa a ser utilizando criptografia assimétrica. O que isso significa? Que você precisa configurar uma chave privada e uma chave pública. A chave pública deve ser registrada no github.

Para criar a chave, você pode seguir esse tutorial oficial do github. No entanto, eu criei um script para que você possa fazer toda a configuração do git com a chave ssh.

Para usar meu script, clone meu repositório de scripts (aqui tem vários scripts úteis. Usem sem parcimônia e quebrem seu sistema operacional).

Terminal window
git clone https://github.com/rmnicola/Scripts.git && cd Scripts

Como eu sou preguiçoso muito organizado, eu criei um script que basicamente pega todos os scripts existentes nessa pasta de scripts e cria um link simbólico para que eles fiquem disponíveis em /usr/bin/, que é a pasta onde ficam os arquivos binários executáveis do seu usuário no Linux. Eu fiz isso pois a partir do momento em que essa configuração é feita, todos os scripts passam a ser acessíveis de qualquer lugar do sistema, como se fosse um programa que você instalou (o motivo disso é porque ele é um programa que você instalou).

Terminal window
sudo ./install.sh

Se o output do comando tiver essa carinha:

Terminal window
Symlink created for charm-cli-install
Symlink created for dotfiles-link
Symlink created for flatpak-install
Symlink created for go-install
Symlink created for starship-install
Symlink created for zsh-install
Symlink created for fonts-install
Symlink created for gnome-pull
Symlink created for gnome-push
Symlink created for generate-ssh-key
Symlink created for git-configure
Symlink created for node-install
Symlink created for rust-install
Symlink created for ilovecandy
Symlink created for neovim-install
Symlink created for ros-install
Symlink created for ros-start
Symlink created for configure-bt-autosuspend
Symlink created for logiops-install

Significa que deu tudo certo.

O primeiro passo é instalar a linguagem go. Por quê? Porque eu criei uma interface amigável que foi feita utilizando uma ferramenta que precisa do go instalado no seu sistema (bubblegum).

Para instalar o go, rode:

Terminal window
go-install

Ao final desse comando, você vai ver três linhas que devem ser adicionadas ao seu .bashrc. Adicione elas e rode source .bashrc para poder utilizar o go. Se tudo deu certo, o comando a seguir vai mostrar a versão de go instalada no seu sistema:

Terminal window
go version

Legal, agora podemos instalar o bubblegum:

Terminal window
charm-cli-install

Agora, vamos apenas garantir que outras duas ferramentas necessárias para rodar meus scripts estejam instaladas:

Terminal window
sudo apt install figlet xclip

Pronto! Agora, rode:

Terminal window
generate-ssh-key

E siga as instruções no terminal para gerar sua chave ssh. Sugiro utilizar o título padrão e não configurar uma senha para poder dar push sem digitar essa senha toda vez.

Ao final da execução desse comando, você vai ver dois links no seu terminal. O primeiro deles é o que vai te levar para a página onde você deve adicionar a sua chave SSH no github. Segue o link.

Nessa página, você deve clicar em New SSH key. Isso vai te levar para uma página onde você deve definir um título e colocar a sua chave pública. Meu script foi feito com carinho, então assim que você executa ele, a sua chave pública fica disponível no seu clipboard para colar a qualquer momento utilizando CTRL V. De nada!

Sugiro criar duas chaves, uma para autenticação e outra para assinatura. A de assinatura não é exatamente necessária, mas sem ela seus commits não vão ter o check verdinho ao lado.

Quer testar se deu certo? Rode o seguinte comando:

Terminal window
ssh git@github.com

Legal, agora você tem uma chave ssh configurada e cadastrada no Github. O próximo passo é configurar o git.

Essa vai ser rápida. Rode:

Terminal window
git-configure

E siga as instruções que vão aparecer no seu terminal.

Quer fazer tudo na mão? Beleza, siga o tutorial que vem a seguir.

O git é uma ferramenta que pode ser usada para atribuir culpa registrar os responsáveis por cada parte do código do projeto. Sendo assim, você precisa registrar ao menos seu nome completo e email antes de conseguir fazer um commit.

Terminal window
git config --global user.name "Seu Nome Aqui"
git config --global user.email "seu.email@aqui"

Sempre que você usar o comando git commit, o git vai usar um editor para que você possa escrever sua mensagem de commit. Caso você não mexa nessa configuração, o padrão do git será o vim. Se você nuna usou o vim na vida, a experiência de dar um commit e ser jogado dentro do editor pode ser um pouco traumática.

Boot process

Para configurar seu editor padrão do vim, use:

Terminal window
git config --global core.editor "code"

O comando acima configura como editor padrão o vscode.

Para saber mais sobre git, leia esse livro gratuito

Após a configuração, é possível utilizar o Git para controlar versões de código. O Git é utilizado através do terminal. O terminal é uma interface de linha de comando que permite que comandos sejam executados no computador. O terminal do Git é chamado de Git Bash. Ele é uma interface de linha de comando que permite que comandos do Git sejam executados. Além disso, o Git Bash possibilita utilizar alguns comandos do Linux no Windows.

Para iniciar o controle de versão em um repositório, é necessário inicializar o repositório. Isso pode ser feito utilizando o comando git init. O comando git init cria um repositório Git vazio. O repositório é criado na pasta onde o comando é executado.

Terminal window
git init

Após a inicialização do repositório, é possível adicionar arquivos ao repositório. Isso pode ser feito utilizando o comando git add. O comando git add adiciona arquivos ao repositório. O comando git add pode ser utilizado para adicionar um arquivo específico ou todos os arquivos de uma vez.

Terminal window
# Adiciona um arquivo por vez
git add arquivo1.txt
# Adiciona todos os arquivos
git add .

Após adicionar os arquivos ao repositório, é necessário realizar um commit. O commit é uma forma de salvar as mudanças no repositório. O commit é realizado utilizando o comando git commit. O comando git commit salva as mudanças no repositório. O commit deve ser acompanhado de uma mensagem que descreve as mudanças realizadas.

Terminal window
git commit -m "Mensagem do commit"

Após realizar o commit, é possível enviar as mudanças para um repositório remoto. Isso pode ser feito utilizando o comando git push. O comando git push envia as mudanças para um repositório remoto. O repositório remoto é um repositório que está em um servidor. O servidor pode ser o Github, o Gitlab ou qualquer outro servidor que utilize o Git.

Terminal window
git push

Para realizar o download das mudanças de um repositório remoto, é possível utilizar o comando git pull. O comando git pull realiza o download das mudanças de um repositório remoto para a sua versão local.

Terminal window
git pull

Quando desejamos acompanhar o status do repositório, podemos utilizar o comando git status. O comando git status mostra o status do repositório. Ele mostra quais arquivos foram modificados, quais arquivos foram adicionados e quais arquivos foram removidos.

Terminal window
git status

A utilização do Git pode ser extendida para a utilização de branches, que são ramificações do código principal. A utilização de branches permite que diferentes versões do código sejam desenvolvidas ao mesmo tempo. A utilização de branches é muito útil para o desenvolvimento de software.

Para criar uma branch, é necessário utilizar o comando git branch. O comando git branch cria uma nova branch.

Terminal window
git branch nome-da-branch

Após criar a branch, é necessário mudar para a branch. Isso pode ser feito utilizando o comando git checkout. O comando git checkout muda para a branch desejada.

Terminal window
git checkout nome-da-branch

Após realizar as mudanças na branch, é necessário realizar um merge. O merge é uma forma de unir duas branches. O merge é realizado utilizando o comando git merge. O git merge deve ser realizado na branch que receberá as mudanças.

Terminal window
# Mudando para a branch que receberá as mudanças
git checkout nome-da-branch-que-recebera-mudancas
# Realizando o merge
git merge nome-da-branch

Para saber mais sobre a utilização do Git, recomendo fortemente assistir: