Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Git tornou-se o padrão mundial para controle de versão. Então, o que é exatamente?
O Git é um sistema de controle de versão distribuído, o que significa que um clone local do projeto é um repositório completo de controle de versão. Esses repositórios locais totalmente funcionais facilitam o trabalho offline ou remoto. Os desenvolvedores confirmam seu trabalho localmente e, em seguida, sincronizam sua cópia do repositório com a cópia no servidor. Este paradigma difere do controle de versão centralizado, onde 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 o tornam uma ótima escolha para qualquer equipe. Muitos desenvolvedores e graduados 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 ao Git e ferramentas de linha de comando Git implementadas em todos os principais sistemas operacionais.
Noções básicas do Git
Toda vez que o trabalho é salvo, o Git cria uma confirmação. Um commit é um instantâneo de todos os arquivos num determinado instante. Se um arquivo não tiver sido alterado de uma confirmação para outra, 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.
Os commits criam links para outros commits, formando um gráfico 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 revisar 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 corromper arquivos sem que o Git detete.
Ramos
Cada desenvolvedor salva as alterações em seu próprio repositório de código local. Como resultado, pode haver muitas mudanças diferentes com base no mesmo compromisso. O Git fornece ferramentas para isolar as alterações e, posteriormente, fundi-las novamente. As ramificações, que são ponteiros leves para o trabalho em andamento, gerenciam essa separação. Uma vez que o trabalho criado em uma ramificação é concluído, ele pode ser mesclado de volta na ramificação principal (ou tronco) da equipe.
Arquiva e confirma
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 compromisso ou da história de desenvolvimento. O programador deve preparar os arquivos alterados para serem incluídos no commit. A área de preparo contém todas as alterações a serem incluídas no próximo commit. Uma vez que o desenvolvedor está satisfeito com os arquivos listados, os arquivos são empacotados como um commit com uma mensagem descrevendo o que mudou. Este compromisso torna-se parte da história do desenvolvimento.
O preparo permite que os desenvolvedores escolham quais alterações de arquivo salvar em uma confirmação, a fim de dividir grandes alterações em uma série de confirmações menores. Ao reduzir o escopo das confirmações, fica mais fácil revisar o histórico de confirmações para encontrar alterações específicas em arquivos.
Benefícios do Git
Os benefícios do Git são muitos.
Desenvolvimento simultâneo
Cada um tem sua própria cópia local do código e pode trabalhar simultaneamente em suas próprias filiais. O Git funciona offline, já que quase todas as operações são locais.
Lançamentos mais rápidos
As filiais permitem um desenvolvimento flexível e simultâneo. A ramificação principal contém código estável e de alta qualidade a partir do qual você libera. As branches de funcionalidades contêm trabalho em progresso, que são integrados na branch principal após a conclusão. Ao separar a ramificação de lançamento do desenvolvimento em andamento, é mais fácil gerenciar o código estável e enviar atualizações mais rapidamente.
Integração incorporada
Devido à sua popularidade, o Git integra-se na maioria das ferramentas e produtos. Todos os principais IDE têm suporte Git integrado, e muitas ferramentas suportam integração contínua, implantação contínua, testes automatizados, rastreamento de itens de trabalho, métricas e integração de recursos de relatórios com o Git. Essa integração simplifica o fluxo de trabalho diário.
Forte apoio da comunidade
O Git é de código aberto e tornou-se o padrão de facto para o controlo de versões. Não faltam ferramentas e recursos disponíveis para as equipes aproveitarem. O volume de suporte da comunidade para o 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, aplicando políticas, automatizando processos e melhorando a visibilidade e a rastreabilidade do trabalho. A equipe pode se contentar com ferramentas individuais para controle de versão, rastreamento de item de trabalho e integração e implantação contínuas. Ou, eles podem escolher uma solução como o GitHub ou o Azure DevOps que ofereça suporte a todas essas tarefas em um só lugar.
Pedidos Pull
Use pull requests para discutir alterações de código com a equipa antes de integrá-las na ramificação principal. As discussões em solicitações 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 rica de pull request, onde os desenvolvedores podem procurar alterações de arquivos, deixar comentários, inspecionar confirmações, exibir compilações e votar para aprovar o código.
Políticas de sucursais
As equipes podem 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 ramificação para garantir que as solicitações pull atendam aos requisitos antes da conclusão. As políticas de filiais protegem ramos importantes, impedindo envios diretos, requerendo revisores e garantindo compilações limpas.