Compartilhar via


O que é Git?

O Git tornou-se o padrão mundial para controle de versão. Então, o que exatamente é isso?

O Git é um sistema de controle de versão distribuído, o que significa que um clone local do projeto é um repositório de controle de versão completo. Esses repositórios locais totalmente funcionais facilitam o trabalho offline ou remotamente. Os desenvolvedores confirmam seu trabalho localmente e sincronizam a cópia do repositório com a cópia no servidor. Esse paradigma difere do controle de versão centralizado em que os clientes devem sincronizar o código com um servidor antes de criar novas versões de código.

A flexibilidade e a popularidade do Git fazem dele uma ótima opção para qualquer equipe. Muitos desenvolvedores e universitários já sabem como usar o Git. A comunidade de usuários do Git criou recursos para treinar desenvolvedores e a popularidade do Git facilita a obtenção de ajuda quando necessário. Quase todos os ambientes de desenvolvimento têm suporte do Git e ferramentas de linha de comando git implementadas em todos os sistemas operacionais principais.

Noções básicas do Git

Sempre que o trabalho é salvo, o Git cria uma confirmação. Um commit é um instantâneo de todos os arquivos em um determinado momento. Se um arquivo não tiver sido alterado de uma confirmação para a próxima, o Git usará o arquivo armazenado anteriormente. Esse design difere de outros sistemas que armazenam uma versão inicial de um arquivo e mantêm um registro de deltas ao longo do tempo.

Grafo linear de desenvolvimento no Git

Commits criam links para outros commits, formando um grafo do histórico de desenvolvimento. É possível reverter o código para uma confirmação anterior, inspecionar como os arquivos foram alterados de uma confirmação para outra e examinar informações como onde e quando as alterações foram feitas. As confirmações são identificadas no Git por um hash criptográfico exclusivo do conteúdo da confirmação. Como tudo é hash, é impossível fazer alterações, perder informações ou arquivos corrompidos sem que o Git a detecte.

Ramificações

Cada desenvolvedor salva alterações em seu próprio repositório de código local. Como resultado, pode haver muitas alterações diferentes baseadas no mesmo commit. O Git fornece ferramentas para isolar as alterações e, posteriormente, mesclá-las novamente. Os branches, que são ponteiros leves para trabalho em progresso, gerenciam essa separação. Depois que o trabalho criado em um branch for concluído, ele poderá ser mesclado de volta ao branch principal (ou tronco) da equipe.

Confirmações em um branch

Arquivos e confirmações

Os arquivos no Git estão em um dos três estados: modificados, preparados ou confirmados. Quando um arquivo é modificado pela primeira vez, as alterações existem apenas no diretório de trabalho. Eles ainda não fazem parte de um commit ou do histórico de desenvolvimento. O desenvolvedor deve preparar os arquivos alterados para serem incluídos no commit. A área de stage contém todas as alterações a serem incluídas no próximo commit. Depois que o desenvolvedor estiver satisfeito com os arquivos em etapas, os arquivos serão empacotados como uma confirmação com uma mensagem que descreve o que mudou. Essa confirmação se torna parte do histórico de desenvolvimento.

file_status_lifecycle-2

O Staging permite que os desenvolvedores escolham quais alterações de arquivo salvar em um commit para dividir grandes mudanças em uma série de commits menores. Ao reduzir o escopo de confirmações, é mais fácil examinar o histórico de confirmação para encontrar alterações específicas de arquivo.

Benefícios do Git

Os benefícios do Git são muitos.

Desenvolvimento simultâneo

Todos têm uma cópia local de código e podem trabalhar simultaneamente em suas próprias ramificações. O Git funciona offline, pois quase todas as operações são locais.

Lançamentos mais rápidos

As ramificações permitem o desenvolvimento flexível e simultâneo. O branch principal contém código estável e de alta qualidade, a partir do qual você realiza lançamentos. As ramificações de funcionalidades contêm trabalho em andamento, que são mesclados na ramificação principal após a conclusão. Ao separar o branch de lançamento do desenvolvimento em andamento, fica mais fácil gerenciar código estável e enviar atualizações mais rapidamente.

Integração interna

Devido à sua popularidade, o Git integra-se à maioria das ferramentas e produtos. Cada IDE principal tem suporte interno do Git e muitas ferramentas dão suporte à integração contínua, implantação contínua, teste automatizado, acompanhamento de itens de trabalho, métricas e integração de recursos de relatório com o Git. Essa integração simplifica o fluxo de trabalho diário.

Forte apoio da comunidade

O Git é de software livre e tornou-se o padrão de fato para controle de versão. Não faltam ferramentas e recursos disponíveis para as equipes aproveitarem. O volume de suporte da comunidade para Git em comparação com outros sistemas de controle de versão facilita a obtenção de ajuda quando necessário.

O Git funciona com qualquer equipe

Usar o Git com uma ferramenta de gerenciamento de código-fonte aumenta a produtividade de uma equipe incentivando a colaboração, impondo políticas, automatizando processos e melhorando a visibilidade e a rastreabilidade do trabalho. A equipe pode optar por ferramentas individuais para controle de versão, rastreamento de itens de trabalho e integração e implantação contínuas. Ou podem escolher uma solução como o GitHub ou o Azure DevOps que dá suporte a todas essas tarefas em um só lugar.

Solicitações de pull

Use solicitações de pull para discutir alterações de código com a equipe antes de mesclá-las no branch principal. As discussões em solicitações de pull são inestimáveis para garantir a qualidade do código e aumentar o conhecimento em toda a sua equipe. Plataformas como o GitHub e o Azure DevOps oferecem uma experiência de solicitação de pull avançada em que os desenvolvedores podem procurar alterações de arquivo, deixar comentários, inspecionar confirmações, exibir builds e votar para aprovar o código.

Políticas de branch

O Teams pode configurar o GitHub e o Azure DevOps para impor fluxos de trabalho e processos consistentes em toda a equipe. Eles podem configurar políticas de branch para garantir que as solicitações de pull atendam aos requisitos antes da conclusão. As políticas de ramificação protegem branches importantes evitando pushes diretos, exigindo revisores e garantindo builds limpos.

Próximas etapas

Instalar e configurar o Git