git
histórico, conceitos, fluxos e prática
— Frank Lima
O que é
É uma prática essencial no desenvolvimento de software que permite rastrear, acompanhar e gerenciar as alterações realizadas em um projeto, permitindo que desenvolvedores colaborem de forma eficaz.

Processos bem populares
Repositório
Onde se hospeda o projeto base.
1
Commit
É o ponto de salvamento no histórico do projeto. Ele registra um conjunto de mudanças com uma mensagem descritiva.
2
Stagging Area (Area de preparação)
Antes de registrar um commit, você escolhe quais arquivos ou mudanças quer incluir com o comando git add
3
Branch (Ramo)
É uma linha de desenvolvimento independente. Serve para isolar funcionalidades, ações ou testes sem interferir no código principal.
4
Merge
Usado para juntar o contéudo de uma branch com outra.
5
Merge Conflict (Conflito de Merge)
Ocorre quando duas branches alteram a mesma parte de um arquivo. O git não sabe qual versão manter, e precisa ser feito manual.
6
Processos bem populares
Clone
Copia um repositório remoto inteiro para uma máquina local para desenvolvimento.
7
Pull
Atualiza seu repositório local com mudanças que estão no repositório remoto.
8
Push
Envia suas alterações locais (commits) para o repositório remoto.
9
Processos bem populares
Histórico (Log)
Mostra todos os commits feitos no repositório, com data, autor e a mensagem.
10
Processos bem populares
Temos dois ambientes conhecidos como "Remoto" e "Local"
Como funciona ?


Remoto
Local
Repositório
Comandos

Comandos conhecidos
# 1. Criar um repositório Git
git init
# 2. Adicionar arquivos à área de preparação (Staging Area)
git add arquivo.txt
# 2.1 ou todos os arquivos:
git add .
# 3. Fazer um commit
git commit -m "Adiciona o arquivo de configuração inicial"
# 4. Ver o histórico de commits
git log
# 5. Criar um novo branch
git branch feature/login
Comandos conhecidos
# 6. Mudar para outro branch
git checkout feature/login
# 6.1 Cria e já troca
git checkout -b feature/login
# 7. Unir (merge) um branch com outro
git checkout main
git merge feature/login
# 8. Resolver conflitos (se houver)
git add arquivo_com_conflito.txt
git commit
# 9. Clonar um repositório remoto
git clone https://<provedor_git>.com/seu-usuario/seu-repositorio.git
# 10. Enviar alterações para o repositório remoto
git push origin main
# 11. Buscar e aplicar alterações do remoto
git pull origin main
Tree ou árvore é uma estrutura que representa um diretório (pasta) em um determinado commit.
Árvore do Git
Commit
└── Tree (diretório raiz)
├── Blob (arquivo: main.py)
├── Blob (arquivo: README.md)
└── Tree (subpasta: src/)
├── Blob (arquivo: app.py)
└── Blob (arquivo: utils.py)
Resumo:
- Um commit referencia uma tree;
- A tree lista os arquivos e subdiretórios;
- Cada arquivo é armazenado como um blob (contéudo puro, sem nome de arquivo);
- Cada subdiretório é outra árvore (tree).
Árvore do Git
A Jetbrains possui um plugin instalado nativamente nas suas IDEs, para acionar basta apertar "Alt + 9" para abrir.
Exemplo no Pycharm:
Árvore do Git
Árvore do Git
Exercício: localize a arvore do git

Árvore do Git

Aqui temos as arvores daquele commit selecionado.
- Commits bem feitos: Mensagens claras e descritivas. Ex. Bom "Corrige erro de formatação no formulário de login". Ex. Ruim "Fix". Use o tempo verbal imperativo na mensagem e use sempre commits pequenos e focados;
- Branchs organizadas: Crie branchs por "feature, bugfix, ou refactor". Ex. "feature/create_user". Evite trabalhar direto na branch main ou master. Sempre busque apagar as branchs que ja foram mergeadas.
Boas práticas
3. Use .gitignore corretamente: evite enviar arquivos desnecessariamente como dependências 0
Boas práticas
Serif
By Frank Lima
Serif
- 75