Categoria

Git

Gitignore: excluindo arquivos do controle de versão
Git 05/05/2026

Gitignore: excluindo arquivos do controle de versão

O arquivo .gitignore é um recurso fundamental do Git que permite especificar quais arquivos e diretórios devem ser intencionalmente ignorados pelo sistema de controle de versão. Quando você adiciona um padrão ao .gitignore, o Git automaticamente exclui esses arquivos de operações como git add, git status e git commit.

Fast-forward vs three-way merge
Git 05/05/2026

Fast-forward vs three-way merge

O merge (fusão) é uma operação fundamental no Git que permite integrar alterações de diferentes branches em um único branch unificado. Ele existe porque o desenvolvimento paralelo é uma realidade em projetos de software: diferentes pessoas ou equipes trabalham em funcionalidades distintas, correções de bugs ou experimentos ao mesmo tempo. Sem o merge, seria impossível consolidar essas contribuições de forma organizada.

Feature flags no código: desacoplando deploy de release
Git 05/05/2026

Feature flags no código: desacoplando deploy de release

Em times que não utilizam feature flags, cada deploy é também uma release. Isso significa que, ao fazer o merge de uma branch com código novo para main, a funcionalidade vai automaticamente para produção. Se algo der errado, o rollback exige reverter commits inteiros, o que pode causar downtime prolongado.

Fork e o modelo de contribuição open source
Git 05/05/2026

Fork e o modelo de contribuição open source

No contexto do Git e de plataformas como GitHub e GitLab, um fork é uma cópia completa de um repositório que fica sob sua conta pessoal. Diferente de um clone, que cria uma cópia local no seu computador, o fork é um repositório remoto independente que você controla totalmente.

Draft PRs e WIP: sinalizando trabalho em progresso
Git 05/05/2026

Draft PRs e WIP: sinalizando trabalho em progresso

No desenvolvimento de software moderno, a transparência sobre o estado do trabalho é essencial para equipes colaborativas. Work in Progress (WIP) refere-se a código que está sendo desenvolvido, mas ainda não está pronto para ser integrado ao branch principal. Sinalizar WIP corretamente evita confusões, merges acidentais e retrabalho.

Credential helpers: gerenciando autenticação com segurança
Git 05/05/2026

Credential helpers: gerenciando autenticação com segurança

O armazenamento de senhas em texto puro dentro do arquivo .gitconfig é uma prática extremamente insegura e desencorajada. Qualquer processo ou usuário com acesso ao sistema poderia ler essas credenciais comprometendo contas e repositórios inteiros. Além disso, a digitação repetida de credenciais a cada operação remota (git push, git pull, git fetch) torna o fluxo de trabalho tedioso e propenso a erros.

Criando, alternando e deletando branches
Git 05/05/2026

Criando, alternando e deletando branches

No Git, uma branch é essencialmente um ponteiro móvel para um commit específico dentro do histórico do repositório. Imagine uma linha do tempo do seu projeto: cada commit representa um ponto nessa linha, e uma branch é como um marcador que aponta para um desses pontos. Quando você faz um novo commit, a branch automaticamente avança para apontar para o novo commit.

Custom merge drivers: resolvendo conflitos em arquivos binários ou especializados
Git 05/05/2026

Custom merge drivers: resolvendo conflitos em arquivos binários ou especializados

O Git utiliza uma estratégia textual para resolução de conflitos: ele compara arquivos linha por linha, aplicando algoritmos como o "three-way merge" baseado no ancestral comum. Essa abordagem funciona bem para código-fonte, mas falha em cenários onde o conteúdo não é texto puro ou onde a estrutura do arquivo exige tratamento semântico.

Configurações avançadas do gitconfig
Git 05/05/2026

Configurações avançadas do gitconfig

O Git organiza suas configurações em uma hierarquia de escopos que permitem controle granular sobre o comportamento da ferramenta. A precedência segue esta ordem: --system (todo o sistema), --global (usuário), --local (repositório atual) e --worktree (árvore de trabalho específica).