"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Aumentando minha produtividade com Git Worktrees

Aumentando minha produtividade com Git Worktrees

Publicado em 2024-11-03
Navegar:617

Muitas vezes trabalho em vários recursos simultaneamente, o que me leva a armazenar alterações e esquecê-las enquanto mudo para outras tarefas. Tentei usar ganchos git e aliases de terminal como lembretes, mas eles eram muito complicados ou fáceis de ignorar. Então, tive que encontrar uma solução melhor.

Este artigo foi postado originalmente em meu blog há mais de um ano, mas sempre volto a ele. Compartilhando novamente com o mundo :)

Resumindo

O Git armazena informações como uma lista de instantâneos. Um instantâneo é uma versão armazenada do repositório em um determinado momento. Cada commit representa um instantâneo no mundo git.

A árvore de trabalho é um checkout único de uma versão do projeto. Esses arquivos são retirados do banco de dados compactado no diretório Git e colocados no disco para você usar ou modificar. Este é o lugar onde você faz seu trabalho antes de encenar e se comprometer.

Árvores de trabalho Git

Git Worktrees são uma maneira de gerenciar várias árvores de trabalho git ao mesmo tempo, sem o incômodo do git stash. Eles nos permitem trabalhar em ramificações como subdiretórios de um repositório, aliviando completamente a dor de armazenar alterações quando uma alteração urgente e não relacionada é necessária.

O módulo worktree permite que você faça checkout de múltiplas versões do projeto em subdiretórios separados no mesmo diretório raiz do repositório. Veja o diagrama a seguir, por exemplo, na abordagem tradicional:

Boosting My Productivity With Git Worktrees

Neste exemplo, tenho duas alterações ocultas (que podem ter centenas de linhas de código) e 3 ramificações, feature-1, feature-2 e fix -1. Quando eu terminar de trabalhar no branch fix-1 e empurrá-lo, meu cérebro terá pulado para a próxima tarefa e esquecido completamente dos recursos anteriores até que eu me lembre deles novamente.

Em vez disso, com árvores de trabalho, fica assim:

Boosting My Productivity With Git Worktrees

Com árvores de trabalho, a estrutura de diretórios contém cada árvore de trabalho (ramificação) em um diretório separado. Isso me permite alternar facilmente de uma ramificação para outra simplesmente alterando o diretório em que estou trabalhando no momento. Meu fluxo de trabalho normal com essa abordagem consiste no seguinte:

  1. Abra um terminal no diretório do projeto
  2. Crie uma árvore de trabalho com um nome de branch
  3. código. para abrir o VSCode no diretório worktree

Quando eu quero mudar de uma árvore de trabalho para outra, tudo o que preciso fazer é criar uma árvore de trabalho diferente usando as mesmas etapas, se ainda não a tiver criada, ou simplesmente abrir um diretório diferente com VSCode e começar a hackear imediatamente.

Criando uma árvore de trabalho

Criar uma árvore de trabalho é tão simples quanto executar git worktree add directory-name branch-name para ramificações existentes ou git worktree add directory-name -b branch-name para criar uma nova ramificação.

Excluindo uma árvore de trabalho

Depois de terminar de trabalhar em um branch, você pode remover a árvore de trabalho com segurança para parar de poluir sua estrutura de diretórios. Basta executar git worktree remove nome do diretório. Isso não exclui as ramificações subjacentes, então você pode verificá-las novamente com segurança mais tarde.

Pegadinhas

Worktrees são checkouts de ramificações do repositório, portanto, arquivos não rastreados não são copiados. Arquivos como .env não serão copiados, portanto, copie-os após criar uma árvore de trabalho e instale dependências, se houver.

Observe também que os diretórios criados para as árvores de trabalho aparecerão nos logs de status do git quando executados no diretório do repositório raiz. Essas pegadinhas não são nada para mim comparadas a esquecer horas de trabalho.


Obrigado por ler! Você pode ler mais no meu blog e apoiar meu trabalho nos patrocinadores do GitHub!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/kl13nt/using-git-worktrees-to-boost-my-productivity-18m4?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3