Categoria

Git

Worktrees: múltiplas branches ao mesmo tempo
Git

Worktrees: múltiplas branches ao mesmo tempo

Worktrees são uma funcionalidade do Git que permite ter múltiplas cópias de trabalho (working directories) associadas a um único repositório. Cada worktree possui seu próprio diretório, índice, arquivos modificados e branch ativa, mas compartilham o mesmo repositório .git principal. Isso significa que você pode ter várias branches checkout simultaneamente, cada uma em seu próprio diretório, sem interferência entre elas.

05/05/2026
Update-ref e symbolic-ref: manipulação avançada de referências
Git 05/05/2026

Update-ref e symbolic-ref: manipulação avançada de referências

Referências no Git são ponteiros nomeados para commits específicos. Elas incluem branches (como main, develop), tags (v1.0, release-2.0) e o apontador especial HEAD. Cada referência reside em arquivos dentro do diretório .git/refs/, sendo que uma referência direta armazena diretamente o hash SHA-1 do commit, enquanto uma referência simbólica aponta para outra referência (ex.: HEAD → refs/heads/main).

Submodules: repositórios dentro de repositórios
Git 05/05/2026

Submodules: repositórios dentro de repositórios

Submodules são uma funcionalidade do Git que permite incluir um repositório Git completo dentro de outro repositório Git. Na prática, você mantém um link para um commit específico de um repositório externo dentro do seu projeto principal, sem copiar todo o histórico ou arquivos para dentro do seu repositório.

Subtree vs submodule: quando usar cada abordagem
Git 05/05/2026

Subtree vs submodule: quando usar cada abordagem

Gerenciar dependências e código compartilhado entre múltiplos projetos é um desafio recorrente no desenvolvimento de software. Quando um mesmo componente precisa ser reutilizado em diferentes repositórios, surgem questões sobre como sincronizar alterações, versionar corretamente e manter a rastreabilidade.

Tags: marcando versões com git tag
Git 05/05/2026

Tags: marcando versões com git tag

Tags no Git são marcadores estáticos que apontam para um commit específico no histórico do repositório. Diferentemente de branches, que se movem conforme novos commits são adicionados, as tags permanecem fixas no commit em que foram criadas. Essa característica as torna ideais para marcar versões de software, releases, marcos importantes ou qualquer ponto no histórico que precise ser referenciado de forma permanente.

Seu primeiro repositório: git init, add e commit
Git 05/05/2026

Seu primeiro repositório: git init, add e commit

Um repositório Git é essencialmente um diretório que contém todo o histórico de versões do seu projeto. Quando você inicializa um repositório, o Git cria uma pasta oculta chamada .git dentro do diretório do projeto. Essa pasta armazena todos os metadados e objetos necessários para o versionamento.

Shallow clones em CI: acelerando pipelines com histórico reduzido
Git 05/05/2026

Shallow clones em CI: acelerando pipelines com histórico reduzido

Em pipelines de integração contínua (CI), cada segundo conta. Quando um pipeline é acionado, uma das primeiras etapas é clonar o repositório Git para o ambiente de execução. Em repositórios com histórico extenso — especialmente monorepos ou projetos com anos de desenvolvimento — o download completo pode consumir minutos preciosos. Um repositório de 500 MB com 10.000 commits pode levar de 30 segundos a 2 minutos para ser clonado, dependendo da largura de banda e da latência da rede.

Signing commits com GPG
Git 05/05/2026

Signing commits com GPG

Assinar commits com GPG é uma prática fundamental para garantir a autenticidade e integridade do histórico de um repositório Git. Quando você assina um commit, está criptograficamente provando que foi você quem o criou, e não um impostor.

Sparse checkout: trabalhando apenas com subdiretórios de monorepos
Git 05/05/2026

Sparse checkout: trabalhando apenas com subdiretórios de monorepos

Monorepos são repositórios que armazenam múltiplos projetos, microsserviços ou bibliotecas em um único repositório Git. Embora essa abordagem facilite a consistência de dependências e a reutilização de código, ela cria um problema prático: clonar um monorepo gigante apenas para trabalhar com um único subdiretório é ineficiente. O desenvolvedor precisa baixar todo o histórico e todos os arquivos, mesmo que vá modificar apenas uma pequena parte.

SSH agent forwarding: acessando repositórios via jump hosts
Git 05/05/2026

SSH agent forwarding: acessando repositórios via jump hosts

SSH agent forwarding é um mecanismo que permite que um servidor remoto utilize as chaves SSH armazenadas no agente da sua máquina local, sem que você precise copiar a chave privada para o servidor intermediário. O funcionamento é simples: quando você se conecta a um host remoto com forwarding habilitado, o servidor cria um canal de comunicação com o agente SSH da sua máquina local. Qualquer tentativa de autenticação SSH feita a partir desse host remoto é redirecionada para o seu agente local, qu