Introdução
Git Configuração Inicial
Inicializando um repositório
Adicionando arquivos ao controle de versão
Criando versões do código com commit
Como navegar entre as versões do código
Trabalhando com Branchs
Como unir o código
Criando um repositório com o Github
Atualizando o repositório local
Enviando alterações para o repositório Github
Resolver conflito de versão
Processo completo para criar uma nova versão
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
Atualizar o github
Autenticação alternativa
Gerar tolken no github
Settings
Developer settings
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/
Top comments (0)