Skip to content

brenovambaster/guia-git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Guia Prático de Git e GitHub Para Iniciantes

git

License MIT Git GitHub Author

Observação:
Este guia reúne os principais comandos e fluxos de trabalho do Git, servindo como material de apoio para iniciantes e para quem deseja aprimorar seu conhecimento. Para um estudo mais aprofundado, recomendamos a leitura do Livro Gratuito de Git.

Contribuições:
Se você deseja ajudar a aprimorar este guia, sinta-se à vontade para realizar um fork e submeter uma pull request. Confira as diretrizes de contribuição para mais detalhes.


Índice

0. Notas

  • Livro Gratuito:
    Aprenda Git - Livro Oficial

  • Recomendação:
    Após instalar e configurar o Git, pratique criando repositórios locais e experimente os comandos básicos para compreender o fluxo de trabalho.


Conceitos Básicos: HEAD, Index e Working Directory

Antes de mergulhar nos comandos, é importante entender os três principais "estágios" no Git:

  • Working Directory (Diretório de Trabalho):
    É a pasta do seu projeto, onde você edita os arquivos. Qualquer modificação feita aqui não é registrada no Git até que você as adicione ao staging.

  • Index (ou Staging Area):
    É uma área intermediária onde os arquivos modificados são preparados para o commit. Ao usar o comando git add, você está movendo as alterações do Working Directory para o Index.

  • HEAD:
    Aponta para o commit atual (a "foto" mais recente do seu repositório). Quando você realiza um commit, o HEAD se move para o novo commit criado.

Compreender esses conceitos ajuda a entender melhor como os comandos do Git interagem com seus arquivos.

Git


1. Inicializando o Repositório e Configurando o Usuário

Antes de iniciar, é fundamental configurar seu nome de usuário e email. Essas informações identificarão os autores dos commits. Dica: Utilize o mesmo nome e email do seu perfil no GitHub.

  git config --global user.email "seuemail@mail.com"
  git config --global user.name "Seu Nome"

Para conferir as configurações realizadas, execute:

  git config --list

Caso precise remover alguma configuração, use:

  git config --global --unset user.email
  git config --global --unset user.name

Agora, crie o repositório local:

  git init

2. Verificando o Status do Repositório

Utilize o comando abaixo para visualizar o estado atual do seu repositório, identificando arquivos modificados, novos ou prontos para commit:

git status

3. Adicionando Arquivos ao Index

O comando git add prepara os arquivos para o commit.

  • Adicionar um arquivo específico:
  git add nome_do_arquivo.js
  • Adicionar múltiplos arquivos:
  git add arquivo1.js arquivo2.js arquivo3.js
  • Adicionar todos os arquivos modificados:
  git add .

Se Se adicionar um arquivo por engano, remova-o do index com:

  git reset HEAD nome_do_arquivo.txt

4. Comitando Alterações

Após adicionar os arquivos, confirme as alterações com um commit.

  • Comitar um arquivo específico:
    git commit nome_do_arquivo.txt -m "Mensagem do commit"
  • Comitar todos os arquivos adicionados:
  git commit -m "Mensagem do commit"

4.1 Editando a Mensagem do Commit

Caso seja necessário alterar a mensagem do commit mais recente, utilize:

  git commit --amend

Atenção: Alterar a mensagem de um commit gera um novo commit com um hash diferente. Evite alterar commits que já foram enviados ao repositório remoto.

Para mais detalhes, consulte o Guia do Github

5. Visualizando Alterações

5.1 git log

Exibe o histórico de commits:

git log

Exemplo de saída:

commit 2a3f2b6245**********
Author: Breno Vambáster
Date:   Tue Jul 20 09:49:58 2021 -0300

    Update README.md

Para uma visualização gráfica e resumida:

  git log --graph --oneline --all

5.2 git show

Exibe detalhes de um commit específico, incluindo as alterações realizadas:

  git show 2a3f2b6245

5.3 git diff

Mostra as diferenças entre o estado atual dos arquivos e o último commit (ou entre commits/branches):

  git diff

5.4 git remote

Lista os repositórios remotos configurados:

git remote

7. Restaurando Alterações com git restore

O comando git restore é uma ferramenta moderna para desfazer alterações, complementando (e, em alguns casos, substituindo) o uso do git checkout para restaurar arquivos.

7.1 Restaurar um Arquivo do Working Directory

Se você alterou um arquivo e deseja descartá-lo, retornando à última versão commitada:

 git restore nome_do_arquivo.txt

7.2 Restaurar um Arquivo no Index

Caso já tenha adicionado um arquivo ao staging area e queira removê-lo:

$ git restore --staged nome_do_arquivo.txt

Observação: O git restore ajuda a manter as ações do Git mais intuitivas, separando a restauração de arquivos do ato de trocar de branch, que é feito com git checkout.

6. Revertendo Alterações com Checkout

Outra forma de descartar alterações (especialmente em arquivos individuais) é usando o comando git checkout:

 git checkout -- nome_do_arquivo.txt

Nota: O comando checkout também é utilizado para alternar entre branches. Com o git restore, o Git busca tornar as ações mais claras e específicas.

7. Desfazendo Commits com Reset

Utilize git reset para desfazer commits, com duas abordagens principais:

  • Modo soft: Remove o commit, mantendo as alterações no Index.
 git reset HEAD~1
  • Modo hard: Remove o commit e descarta as alterações no Working Directory.
 git reset --hard HEAD~1

Cuidado: O uso de --hard elimina permanentemente as modificações não commitadas.

8 Mesclando Alterações com Merge

O merge integra alterações de diferentes branches.

  1. Crie e mude para uma nova branch (exemplo: feature):
$ git checkout -b feature
  1. Realize os commits na branch feature.
  2. Retorne à branch principal (geralmente main ou master):
$ git checkout main
  1. Mescle a branch feature na branch main:
$ git merge feature

Se houver conflitos, o Git indicará os arquivos afetados para que você os resolva manualmente. Após resolver os conflitos, finalize o merge:

$ git add arquivos_resolvidos
$ git commit -m "Resolvendo conflitos e finalizando merge"

9 Chave SSH: O que é e como Gerar?

De maneira simplificada uma chave SSH é uma maneira de assegurar a segurança entre a conexao entre sua máquina e o repositório do GitHub

  • Para verificar se já possui uma chave SSH registrada ou caso queira adicionar uma nova basta ir no seu perfil do github e acessar settings>SSH and GPG keys.

Vamos explicar passo a passo como criar uma nova chave SSH:

9.1 - Inicialmente vamos gerar uma nova chave (Será necessário utilizar o email o qual está vinculado ao GitHub para gerar a chave)

  $  ssh-keygen -t ed25519 -C seuemail@mail.com

Após ser a execução do comando, perguntará qual local a chave será armazenada, para selecionar o local padrão bastar apertar Enter (Recomendado utilizar padrão)

Logo após aparecerá um campo para criar uma senha ou continuar sem uma senha (Altamente recomendado criar uma senha)
Ao final será gerado duas chaves, uma publica e outra privada e será exibido o Local onde foram salvas (Importate)

9.2 - Adicionando Chave SSH ao GitHub

Logo após iremos acessar o local onde foi salvo as chaves através do comando:

  $  cd "CaminhoAteDiretorio"
  ex: $ cd "C:\Users\usuario/.ssh/"

Entao iremos acessar o arquivo que contem a chave publica através do comando:

  $  cat id_ed25519.pub 

Irá aparecer a chave gerada, você deverá copiá-la e vincula-la a suas chaves através do seu Perfil no GitHub > settings > SSH and GPG keys > new SSH Key
O Titulo fica a seu critério Ok? ;)

Logo após sera exigido sua senha do GitHub para validação.

9.3 - Validando chave SSH

Para que sua chave funcione corretamente será necessário que seu computador saiba o que fazer com ela, portanto vamos seguir os seguintes passos:

$ eval $(ssh-agent -s)

Ao utilizar esse comando voce esta indicando para o computador iniciar o projeto e executar esse processo em segundo plano.

Logo após sera exibida uma mensagem semelhante a essa "Agent pid 300" (Número gerado aleatoriamente), então digite os seguinte comando, no qual direcionara para o acesso a sua chave privada:

$  ssh-add "caminhoAteChave"
ex: $  ssh-add "C:\Users\usuario/.ssh/id_ed25519"

Logo após sera exigido que digite a senha a qual foi criada a chave.
Prontinho sua chave foi gerada com sucesso,ativada e vinculada a sua conta, mas Lembre-se NUNCA DIVULGUE SUA CHAVE PRIVADA!!!
Sempre que você quiser acessar um servidor remoto, basta copiar ou pedir que o administrador copie sua chave pública para ele.

Caso tenha algum problema...

Acesse o link do artigo do GitHub, lá está bem explicado e com passo a passo. Artigo github

12. Trabalhando com Branches

Branches permitem desenvolver funcionalidades ou corrigir bugs de forma isolada.

12.1 Listando Branches

Veja todas as branches locais:

$ git branch

12.2 Criando uma Nova Branch

Crie uma nova branch sem sair da branch atual:

$ git branch nome-da-branch

Ou crie e alterne imediatamente:

$ git checkout -b nome-da-branch

12.3 Trocando de Branch

Mude para outra branch:

$ git checkout nome-da-branch

12.4 Renomeando uma Branch

Renomeie a branch atual:

$ git branch -m novo-nome-da-branch

12.5 Excluindo uma Branch

Após finalizar o trabalho e fazer o merge, remova a branch:

$ git branch -d nome-da-branch

Para forçar a exclusão (se não estiver mergeada):

$ git branch -D nome-da-branch

Boas Práticas:

  • Utilize branches para isolar funcionalidades ou correções.
  • Mantenha a branch principal (main ou master) estável.
  • Nomeie as branches de forma descritiva (ex.: feature/login, bugfix/header).

13. Repositórios Remotos

Repositórios remotos permitem sincronizar seu trabalho com servidores, como o GitHub.

13.1 Clonando um Repositório

Clone um repositório remoto para sua máquina:

$ git clone https://github.com/usuario/nome-do-repositorio.git

Ou utilizando SSH:

$ git clone git@github.com:usuario/nome-do-repositorio.git

13.2 Adicionando um Repositório Remoto

Se você já possui um repositório local e deseja associá-lo a um repositório remoto:

$ git remote add origin https://github.com/usuario/nome-do-repositorio.git

Verifique os repositórios remotos:

$ git remote -v

13.3 Enviando Alterações para o Remoto (Push)

Após os commits, envie as alterações para o repositório remoto:

$ git push origin main

Para uma nova branch:

$ git push -u origin nome-da-branch

13.4 Recebendo Alterações do Remoto (Pull)

Atualize seu repositório local com as alterações do remoto:

$ git pull origin main

13.5 Buscando Alterações sem Fazer Merge (Fetch)

Busque as alterações do repositório remoto sem mesclá-las imediatamente:

$ git fetch

Dica: Mantenha seu repositório atualizado para minimizar conflitos.

About

Guia prático de Git e Github feito para iniciantes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •