DEV Community

Cover image for 002/100 Days of Code: Git
Alexandre Bekor
Alexandre Bekor

Posted on • Updated on

002/100 Days of Code: Git

Git: A forma mais assertiva para se contar a história do seu projeto, usar essa ferramenta é como escrever a biografia do seu código! 🧐

Ontem

Desenvolvi templates para validação de formulários com Regex e pesquisei algumas boas práticas na formatação das expressões.

Durante o aprendizado de Expressões Regulares com o auxílio do Regex101 desenvolvi alguns materiais de consulta que em breve estarei compartilhando por aqui!

Hoje

Enquanto me preparava para enviar um projeto front-end para o Gitlab notei que alguns dos comandos que havia estudado para gerenciar os versionamentos haviam sido esquecidos, por isso resolvi dedicar o final dessa noite para relembrar e exercitar.

Git

É um versionador de código, ele te permite empacotar as modificações de arquivos com uma descrição e gerar a partir disso um ponto de salvamento que pode ser restaurado a qualquer momento. Ou seja, por mais que você altere o código, é possível retrocedê-lo a qualquer momento para qualquer ponto de salvamento.

Uma ótima saída para quando um 🐛 bug resolve aparecer na nova versão da aplicação e estamos com pouco tempo de reação!

Aqui estão alguns dos comandos que mais utilizado e que provavelmente você também utilizará:

git init
// inicia o versionador na pasta em que foi chamado

git clone <URL do Repositório>
// clona um repositório a partir de uma url
// exemplo: git clone https://github...

git add .
// adiciona todos os arquivos do projeto na monitoria

git remote add <nome> <url>
// adiciona uma referência para um repositório remoto a partir de uma url
// exemplo: git remote add origin https://github...

git commit -m "Mensagem do Commit"
// empacota as modificações do arquivos monitorados com uma descrição

git push <Nome do repositório remoto>
// envia o commit para o repositório remoto
// exemplo: git push origin

git pull <Nome do repositório remoto> <Nome da branch>
// Incorpora as alterações de um repositório remoto na branch atual
// exemplo: git pull origin master

git status
// Retorna os arquivos que estão sendo monitorados

git log
// Retorna o histórico de commits

git checkout <ID do Commit>
git restore --source <ID do Commit>
git restore .
// restaura o projeto ou um arquivo específico a um ponto anterior

git switch -c <Nome da Nova Branch>
git branch <Nome da Nova Branch>
git branch
git switch <Nome da Branch>
// git switch master

// Atalho para selecionar a branch master
git switch -

git tag -a <Tag> -m 'Descrição'
// cria uma tag e atribui ao commit atual, é como criar um marco, alguns utilizam esse recurso para indicar o início de nova versão da aplicação
// exemplo: git tag -a 1.0 -m 'Alpha Version'

git tag
// lista as tags
Enter fullscreen mode Exit fullscreen mode

Commit para múltiplos repositórios remotos

Esse processo já me atendeu muito bem, então vou destacá-lo aqui!
Já me deparei com uma situação em que precisava realizar o envio dos commits para dois repositórios remotos diferentes, mas por questão de produtividade precisava que o envio fosse realizado com apenas um comando de git push, ao invés de ficar alterando entre as branches e os repositórios remotos, aqui está a estratégia:

// Crie um repositório remoto
git remote add <Nome do Repositório> <URL do Repositório Remoto 01>

// Aponte a URL do outro repositório para o mesmo <Nome do Repositório> utilizado no comando anterior 
git remote set-url --add --push <Nome do Repositório Anterior> <URL do Repositório Remoto 02>

// Exemplo
git remote add origin https://github...
git remote set-url --add --push origin https://gitlab...
git remote set-url --add --push origin https://bitbucket...
Enter fullscreen mode Exit fullscreen mode

Agora, quando enviar os commits com um git push, eles serão processados para todos os repositórios remotos adicionados.

Disclaimer

Sei que não entrei em detalhamento de nenhum dos comandos, mas esse post é apenas a sumarização do estudo do dia, em breve estarei escrevendo alguns artigos mais detalhados abordando cada um desses temas e você pode acompanhá-los nesse e nos meus outros canais de comunicação.

Outros Canais

Fique à vontade para entrar em contato comigo por essas outras mídias sociais também:

Latest comments (0)