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?
1. Instalando o git
Section titled “1. Instalando o git”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:
sudo apt install gitSe 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?
2. Criando uma chave ssh
Section titled “2. Criando uma chave ssh”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).
git clone https://github.com/rmnicola/Scripts.git && cd ScriptsComo 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).
sudo ./install.shSe o output do comando tiver essa carinha:
Symlink created for charm-cli-installSymlink created for dotfiles-linkSymlink created for flatpak-installSymlink created for go-installSymlink created for starship-installSymlink created for zsh-installSymlink created for fonts-installSymlink created for gnome-pullSymlink created for gnome-pushSymlink created for generate-ssh-keySymlink created for git-configureSymlink created for node-installSymlink created for rust-installSymlink created for ilovecandySymlink created for neovim-installSymlink created for ros-installSymlink created for ros-startSymlink created for configure-bt-autosuspendSymlink created for logiops-installSignifica 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:
go-installAo 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:
go versionLegal, agora podemos instalar o bubblegum:
charm-cli-installAgora, vamos apenas garantir que outras duas ferramentas necessárias para rodar meus scripts estejam instaladas:
sudo apt install figlet xclipPronto! Agora, rode:
generate-ssh-keyE 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:
ssh git@github.comLegal, agora você tem uma chave ssh configurada e cadastrada no Github. O próximo passo é configurar o git.
3. Configurando o git
Section titled “3. Configurando o git”3.1. Usando meu script
Section titled “3.1. Usando meu script”Essa vai ser rápida. Rode:
git-configureE 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.
3.2. Na mão
Section titled “3.2. Na mão”3.2.1. Adicionando seu nome e email
Section titled “3.2.1. Adicionando seu nome e email”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.
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.
Para configurar seu editor padrão do vim, use:
git config --global core.editor "code"O comando acima configura como editor padrão o vscode.
4. Tutorial Git
Section titled “4. Tutorial Git”Para saber mais sobre git, leia esse livro gratuito
5. Algumas Sugestões de Uso
Section titled “5. Algumas Sugestões de Uso”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.
git initApó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.
# Adiciona um arquivo por vezgit add arquivo1.txt# Adiciona todos os arquivosgit 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.
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.
git pushPara 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.
git pullQuando 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.
git statusA 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.
git branch nome-da-branchApó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.
git checkout nome-da-branchApó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.
# Mudando para a branch que receberá as mudançasgit checkout nome-da-branch-que-recebera-mudancas# Realizando o mergegit merge nome-da-branchPara saber mais sobre a utilização do Git, recomendo fortemente assistir: