Git e GitHub
- #GitHub
- #Git
Git e GitHub
O que é git?
O git é um sistema de controle de versão.
Quando estamos criando um software mais complexo, é de suma importância termos controle daquilo que estamos fazendo. O git ele age salvando versões dos mesmos arquivos que estamos trabalhando para termos um melhor controle e minimizar erros.
Principalmente quando há mais de uma pessoa que está editando o mesmo código que você. Pode haver conflitos. Tendo isso em mente o git proporciona um melhor controle e gerenciamento para esse e outros tipos de situações.
Como baixar o Git?
- git-scm.com
- fazer o download do arquivo
- Instalar o arquivo com as configurações padrões
Como configurar o Git?
- Abrir o git bash ( botão direito do mouse → gitbash here.
- git config --global user.name “seu nome”
- git config --global user.email seuemail@example.com
O que é GitHub?
O GitHub é uma plataforma de hospedagem de código para controle de versão com Git, e colaboração.
O GitHub vai atuar como sendo o servidor responsável por guardar os códigos que criamos.
Sendo assim, quando mais de uma pessoa vai editar o mesmo código, as alterações feitas por cada um serão salvas primeiro localmente e depois disso irá salvá-las remotamente (no GitHub). E assim a mágica da colaboração do trabalho em equipe em um mesmo projeto ocorre.
Como fazer a autenticação via Token
Se um projeto no GitHub for privado, será necessário fazer a autenticação para poder utilizar os comandos do git como gitclone.
- Na parte superior direita da página do github você vai clicar no seu perfil e em seguida nas configurações.
- Em seguida na parte inferior esquerda procure a opção developer settings → personal access tokens → tokens (classic).
- Em generate new token clique na opção generate new token (classic)
Automaticamente será redirecionado para uma página para que você possa selecionar algumas opções de permissão para depois gerar o token.
Adicione uma nota (para que serve) o tempo desse token e as opções (geralmente escolha a primeira opção apenas) → generate new token
- Copie o token (depois de sair da página esse código sumirá)
- git config —global credencial .helper store
Quando você for tentar fazer algum comando que precise de autenticação cole o token lá e pronto, depois disso você não precisará mais ficar gerando tokens.
Como fazer a autenticação via SSH
SSH é um protocolo de rede que permite que seu computador local e servidor remoto (GitHub) se conectem de forma criptografada pela internet. Na própria página do GitHub tem o passo a passo.
Generating a new SSH key and adding it to the ssh-agent - GitHub Docs
Primeiros Passos com Git e GitHub
Criando e Clonado Repositórios
💡 Para criar uma pasta pelo terminal, use o comando → mkdir nome_da_pasta
Existem duas maneiras de obter um repostório Git na sua máquina:
- Transformando um diretório local em um repositório Git;
- Crie a pasta que será transformada em um repositório Git.
- Abra o gitBash e digite o comando →
$ git init
- Clonando um repositório Git ja existente.
- Copie o endereço do repositório desejado.
- Abra o gitBash e digite o comando →
$ git clone
endereço_do_reposotório.git
Obs: Quando criado ou copiado, dentro da pasta do repositório git terá uma pasta .git (oculta) sinalizando que é um repositório git.
Salvando alterações no Repositório Local
git status
O comando "git status" é como pedir para o Git te contar o que está acontecendo no seu projeto. Quando você digita "git status" no seu terminal, o Git mostra quais arquivos foram modificados, quais estão prontos para serem "commitados" (salvos permanentemente no histórico), e se há algum arquivo novo que o Git ainda não conhece. É como dar uma espiadinha para saber o que está rolando no seu projeto antes de tomar decisões sobre o que fazer a seguir.
- Comando:
git status
- Função:Mostra o estado atual do seu repositório Git.
- Apresenta informações sobre os arquivos e modificações no projeto.
- O que ele mostra:Arquivos modificados.
- Arquivos prontos para serem "commitados" (salvos permanentemente no histórico).
- Novos arquivos que o Git ainda não conhece.
💡 No terminal digite o comando “touch nome_do_arquivo.exemplo” para criar um arquivo vazio.
git add
Para salvar as alterações permanentemente, primeiros vamos usar o comando $ git add nome_do_arquivo.exemplo
- Comando:
$ git add
- Função:Prepara os arquivos para serem incluídos no próximo "commit" (salvo permanentemente no histórico).
- Indica ao Git quais alterações você deseja incluir no próximo "commit".
- O que ele faz:Adiciona as modificações dos arquivos ao chamado "staging area" (área de preparação).
- Permite selecionar quais modificações ou arquivos serão incluídos no próximo "commit".
git commit
O comando "git commit" no Git é como tirar uma foto do estado atual do seu projeto. Imagina que você está trabalhando em algo e quer registrar esse exato momento, como um marco importante. Você organiza as mudanças que quer incluir nessa foto usando o comando "git add". Depois, com o "git commit", você tira essa "foto" e a salva permanentemente no histórico do seu projeto. E para lembrar o que era essa foto, você coloca um pequeno título, uma mensagem, que descreve o que você fez nesse momento. Isso ajuda a manter um histórico claro e organizado do progresso do seu projeto.
- Comando:
git commit
- Função:Salva permanentemente as mudanças preparadas na "staging area" (área de preparação) no histórico do repositório.
- Cria um novo ponto no histórico que representa uma versão estável do projeto.
- O que ele faz:Registra as mudanças que estão na "staging area" como uma nova versão (commit) no repositório Git.
Exemplo:
Suponha que você tenha feito modificações em dois arquivos: arquivo1.txt
e arquivo2.txt
. Você quer salvar essas modificações em um novo ponto no histórico. Aqui está o processo:
- Primeiro, use o comando
git add
para adicionar as modificações ao "staging area": $ git add arquivo1.txt
$ git add arquivo2.txt
- Em seguida, use o comando
git commit
para salvar essas mudanças no histórico: $ git commit -m "Adicionando modificações nos arquivos 1 e 2”
Isso criará um novo commit no histórico contendo as modificações feitas nos arquivos arquivo1.txt
e arquivo2.txt
, e a mensagem "Adicionando modificações nos arquivos 1 e 2"
será associada a esse commit para descrever o que foi feito.
git log
O comando "git log" mostra um histórico de todas as "fotos" (commits) que você tirou no seu projeto. É como olhar para um álbum de fotos, onde cada foto representa um ponto no tempo em que você tirou uma "foto" do seu projeto com o "git commit". Você pode ver quem tirou a "foto" (autor do commit), quando foi tirada (data e hora), e a mensagem que acompanha essa "foto" (descrição do que foi feito naquele ponto). Isso ajuda a entender o progresso do projeto e as mudanças ao longo do tempo.
- Comando:
$ git log
- Função:Exibe um histórico de todos os commits feitos no repositório.
- Apresenta informações sobre o autor, data, hora e mensagem de cada commit.
- O que ele mostra:Lista os commits em ordem cronológica, do mais recente para o mais antigo.
- Para cada commit, mostra o autor, a data e hora em que foi feito e a mensagem associada ao commit.
Desfazendo Alterações no Repositório Local
Desfazendo um repositório git
Para desfazer um repositório git vamos utilizar o seguinte comando
$ rm -rf .git
- Esse comando vai desfazer o repositório git a força, tornando-o uma pasta normal.
Descartando alterações em um arquivo de um repositório git
Para descartar a ultima alteração feita, vamos utilizar o seguinte comando
$ git restore nome_do_arquivo.exemplo
- Esse comando desfaz alterações nos arquivos e os restaura para o estado de um commit anterior.
Como Alterar a Mensagem do Último Commit
Para alterar a mensagem do último commit vamos usar o seguinte comando
$ git commit —amend -m”mensagem alterada”
- Se vizualizarmos a mensagem antes e depois do comando acima com o comando
$ git log
vamos ver que o texto do commit foi alterado.
Como Desfazer Um Commit
- Comando:
git reset
- Função:Remove commits do histórico (quando usado com opções específicas).
Opções comuns:
-soft
: Mantém as mudanças dos commits a serem desfeitos no "staging area" (área de preparação).-mixed
: Remove os commits, mas mantém as mudanças não preparadas nos arquivos.-hard
: Remove os commits e as mudanças nos arquivos, revertendo completamente para o estado do commit especificado.
Exemplo de uso:
$ git reset --soft codigo_hash_do_commit_a_ser_resetado
- O código hash pode ser encontrado usando o comando
$ git log
💡 O "git reflog" é uma ferramenta valiosa para rastrear e recuperar informações mesmo após operações que possam parecer perdidas, como resets. Ele fornece um registro detalhado das ações recentes, o que é útil para resolver problemas e recuperar referências importantes.
Enviando e Baixando Alterações com o Repositório Remoto
Enviando
Primeiro de tudo vamos salvar todos os arquivos locais em um commit. E em seguida vamos crirar um repositório remoto na conta do GitHub. Feito isso com o git bash aberto vamos utilizar os seguintes comandos.
- git remote add origin url_do_repositorio
- esse comando vai conectar o nosso repositório local com o repositório online do GitHub.
- git push -u origin main ou git push
- O comando
git push -u origin main
é usado para enviar as alterações locais para um repositório remoto no GitHub. git push
: envia as alterações locais para o repositório remoto.u
: define o upstream (ponto de referência) para a branch local. Isso permite que você use apenasgit push
em vez de especificar o repositório e a branch toda vez.origin
: é o nome do repositório remoto.main
: é o nome da branch (ramo) local que será enviada para a branch principal do repositório remoto.
Baixando
Se houver alguma alteração no repositório remoto e quisermos atualizar essas alterações no repostório local (com o comando -u ja configurado anteriormente “ver no tópico anterior”) vamos apenas usar o comando $ git pull
- Esse comando vai “puxar” as alterações do repositório remoto e mesclar com o que já existe no repositório local.
Essas anotações foram feitas por mim com base no meu entendimento assistindo o curso de versionamento de código com git e github aqui na DIO.