DEV Community

Cover image for Começando bem com Git/GitHub
Igor Pestana
Igor Pestana

Posted on • Updated on

Começando bem com Git/GitHub

  1. Introdução

  2. Git Configuração Inicial

  3. Inicializando um repositório

  4. Adicionando arquivos ao controle de versão

  5. Criando versões do código com commit

  6. Como navegar entre as versões do código

  7. Trabalhando com Branchs

  8. Como unir o código

  9. Criando um repositório com o Github

  10. Atualizando o repositório local

  11. Enviando alterações para o repositório Github

  12. Resolver conflito de versão

  13. Processo completo para criar uma nova versão

  14. Boas práticas

1. Introdução

O Git é um sistema de versionamento descentralizado com foco em resolver o problema de branches e merges. Tem como característica não precisar de um servidor central que controla tudo.

Sistemas de controle distribuídos

  • Git

  • Bazzar

  • Darcs

  • Mercurial

    Git — é um sistema de controle de versões distribuído
    Github — um local onde armazenamos os códigos versionados no git

Tipos de Merge

Merge 2 way — 2 bases de comparação

Sistema usado no Subversion. Faz comparação entre duas versões do projeto. É um sistema de versionamento centralizado configurado para pressupor que o histórico de um projeto nunca é alterado.

Merge 3 way — 3 bases de comparação

Sistema usado no Git. Faz comparação entre duas versões modificados e o projeto original. É um sistema de versionamento descentralizado que permite modificar alterações e commits anteriores usando ferramentas como git rebase. No git quando fazemos um branch ele marca o commit de origem do branch. O git pode voltar no passado até o ponto onde o branch foi criado e olhar como era o arquivo original.

Comando base do Git

  • git clone - puxar uma cópia do projeto para a sua máquina

  • git add - marcar as alterações

  • git commit - empacotar as modificações (algo equivalente ao diff)

  • depois do diff feito pelo git commit o patch é passado por um algoritmo de hashing (SHA-1) para garantir a integridade.

2. Git Configuração

Configurar dados de usuário

git config --global user.name “Igor Pestana” - determina o nome do usuário

git config --global --unset-all user.name - remove a configuração do nome do usuário

git config --global user.email igorspestana@gmail.com - determina o e-mail do usuário

git config --global --unset-all user.mail - remove a configuração do e-mail do usuário

Configurar editor de texto padrão

git config --global core.editor vim

Definir a branch padrão

git config --global init.defaultBranch main

Verificar as configurações

git config --list

git config --global - escopo do usuário (configurações válidas apenas para um usuário específico)

git config --system - escopo do sistema (configurações válias para todos os usuários no sistema)

3 . Inicializando um repositório

  • Criar uma pasta com o nome “Projeto 1 — dev aprender”

  • Criar arquivo “meu codigo.txt”

  • Abrir o terminal a pasta no terminal

git init - inicia o git no diretório

git status - verifica o status do repositório. se o local onde o código está guardado está ou não atualizado.

git remote add origin "url do repositório" - vincula o repositório local ao repositório criado no github.

  • no commits yet — sem versões do código ainda

  • Untracked files — arquivos que não foram adicionados no controle de versão

4. Adicionando arquivos ao controle de versão

git add “nome do arquivo” - adicionar arquivo ao controle de versão

git add . - adicionar todos os arquivos no controle de versão

5. Criando versões do código com commit

git commit -m "nome do commit" - criar commit. é boa prática dar o nome “commit inicial” para o primeiro commit de um projeto.

É necessário informar o e-mail e nome que está associado ao commit.

Commit criado.

6. Como navegar entre as versões do código

git reflog - mostra os commits, o histórico das versões enviadas, o histórico das atualizações

git reset - tira os arquivos da área intermediária, tira da staging area

git reset -hard - para mudar de versão

git restore - retorna o arquivo a versão do repositório versionado, restaura o arquivo.

git log - histórico de eventos do git

git log -p - histórico de eventos do arquivo

git checkout - mudar repositório para a versão de um commit específico

git checkout master - mudar o repositório para a versão mais atual da branch

git reset --hard HEAD~1 - deleta o commit atual e mantém o arquivos da versão anterior

7. Trabalhando com Branchs

O que são branches e como criar uma

Branches são caminhos diferentes que você vai seguir no desenvolvimento do projeto. E cada branch possui versões como novas funcionalidades ou correções de bugs.

Normalmente se usa uma branch estável (master) com o código em funcionamento e branches secundárias para testes de novos códigos. Depois que uma versão em uma branch secundária está estável é feito um merge entre a branch secundária e a branch principal.

git branch - mostra as branches

Adicionando e mudando de branch

git branch - cria uma nova branch. é boa prática dar o nome “staging” para o branch que está recebendo atualizações que ainda não estão testadas em produção. Os nomes dos branches devem fazer referência à funcionalidade ou alteração que está sendo feita no projeto original.

Deletando uma branch

git branch -D

Adicionando e mudando de branch 2

git checkout - mudar de branch

git checkout -b cria e alterna para a branch

8. Como unir o código

Depois de fazer atualizações no projeto e criar novas funcionalidades é necessário unir o código novo à branch master. Antes de fazer a junção é necessário conferir se a branch atual é a master.

Juntando branchs

git merge

Enviar branch para o github

git push --set-upstream origin - para enviar a nova versão do código para o servidor com a branch nova. sempre que uma branch for criado e ainda não estiver no servidor é necessário usar esse comando.

As branches criadas herdam as commits fazendo com que o histórico do desenvolvimento do projeto não se perca.

9. Criando um repositório com o Github

Criar repositório

Criar chave ssh

Adicionar chave ssh pública no github

Pegar o conteúdo local e adicionar no repositório remoto

git remote add origin git@github.com:igorspestana/testegit.git
git branch -M main
git push -u origin main
Enter fullscreen mode Exit fullscreen mode

Atualizar o github

Autenticação alternativa

Gerar tolken no github

  1. Settings

  2. Developer settings

  3. Personal access tokens

git config --global credential.helper cache - o próximo login ficará salvo e não precisará fazer inserir login e tolken.

git config --global --unset credential.helper - para desfazer o login sem verificação.

10. Atualizando o repositório local

Puxar novos commits do repositório Github

Mostrar repositório remoto

git branch -r

Baixar do repositório remoto

git pull

11. Enviando alterações para o repositório Github

git push - para enviar a versão do código para o servidor na nuvem

  • Criar link do projeto na nuvem. Criar repositório no github e

git remote add origin "link do repositório" - definir para onde o código está sendo enviado

git push --set-upstream origin master - para enviar a versão do código para o servidor na nuvem no branch master. inicialmente é sempre enviado para a master.

12. Resolvendo conflito de versão

**Alteração **feita no github

Alteração feita no local

Indicação de conflito quando feito o git pull

Resolução do conflito e git push

13. Processo completo para criar uma nova versão

14. Boas práticas

Ciclo de atualização de código

Os nomes dos commits devem fazer referência à funcionalidade ou alteração que está sendo feita no projeto original. Ex. git commit -m “permitir cadastrar usuários”

Ignorar arquivos específicos

O arquivo .gitignore é usado para especificar arquivos que o git não vai reconhecer para ser adicionado no repositório.

*.log
bin/
Enter fullscreen mode Exit fullscreen mode

Top comments (0)