Versionamento
Esta etapa aborda conceitos relacionados às Metodologias para Controle de Versões em Projetos Web.
No decorrer de seus estudos, esperamos que você desenvolva as seguintes capacidades:
Para desenvolver tais capacidades, você deverá estudar os seguintes temas:
Esse estudo será necessário para que você resolva a situação-problema a seguir. Então, avance para conhecê-la.
Você foi contratado como programador por uma empresa de desenvolvimento de software, chamada Hroad, que está realizando alterações no fluxo de trabalho de seus programadores, a fim de manter a integridade do código-fonte de seus softwares/solução.
Um dos atuais problemas é a necessidade de alteração de um código-fonte por diversos programadores. Quando duas ou mais pessoas precisam alterar o mesmo arquivo, muitos códigos são perdidos e sem a identificação das alterações que foram feitas por seus desenvolvedores. Além disso, quando uma alteração é feita por um desenvolvedor(a), ela fica difícil de ser rastreada.
Dado o contexto acima, seu coordenador lhe propôs a busca de soluções em que a equipe possa fazer o trabalho simultâneo no mesmo código-fonte sem quaisquer perdas ou intervenções. E, se possível, que o histórico das alterações seja facilmente rastreado.
Para que não haja atraso em nenhuma etapa, seu superior lhe atribuiu os seguintes desafios:
Clique nos botões abaixo para conhecê-los:
Desafio 1
Instalar um software que tem a finalidade de gerenciar diferentes versões — histórico e desenvolvimento — dos códigos-fontes.
Desafio 2
Realizar todas as configurações e demais ações necessárias à prática de monitoramento e gerenciamento de alterações no código.
Desafio 3
Realizar a conciliação de alterações em um mesmo repositório.
Nesta etapa, você deverá resolver o desafio 1:
Para isso, você estudará os seguintes conteúdos:
Uma das vantagens de se trabalhar com arquivos digitais é a facilidade de alterá-los. Para manter o histórico dessas atualizações, é possível criar versões do arquivo original. Mas como manter o controle dessas versões ao longo do desenvolvimento do projeto?
Clique no player a seguir para acessar o vídeo sobre o primeiro tópico do conteúdo: o que é um projeto.
Quando um novo projeto baseado em programação é criado, seja um software, plataforma ou site, é comum, mesmo após a entrega do projeto, a atualização de versões, com correção de bugs, adição de novas ferramentas, entre outros.
O versionamento de código é realizado por um sistema de controle de versões.
Um sistema de controle de versão armazena um conjunto de arquivos ou, como é comum dizer no mundo do desenvolvimento, o código-fonte do projeto (independentemente da linguagem de programação utilizada).
Ele oferece uma maneira eficiente e concisa de gerenciar as alterações de um mesmo arquivo. Cada membro pode visualizar o histórico de todas as modificações feitas pela equipe, incluindo a data de alteração e qual ponto do arquivo foi editado. O time pode atuar de maneira colaborativa, sem conflitos e sem sobreposição das alterações.
E se, porventura, você estiver desenvolvendo um determinado requisito de seu projeto e ele falhar, você pode voltar os seus arquivos a um ponto anterior em que seu projeto esteja estável.
Sendo assim, não é necessário criar múltiplas versões do mesmo arquivo e todos podem usar um único, simplificando o trabalho.
Podemos classificar os sistemas de controle em centralizados e distribuídos.
No Sistema de Controle de Versão Distribuído (DVCS) há uma cópia de todo o trabalho desenvolvido com o histórico completo de todas as alterações feitas na máquina de cada desenvolvedor. Sua vantagem é que, caso ocorra alguma perda na parte central, basta realizar o backup de uma máquina de algum desenvolvedor ou membro da equipe.
O Git é um Sistema de Controle de Versão Distribuído, portanto todos os programadores que estão utilizando-o têm uma cópia de todo o trabalho em suas máquinas locais. A cada alteração realizada pelo programador, seu histórico é mantido em sua máquina local e também no servidor central.
Além de ser um DVCS, o Git é também um open source (código aberto), ou seja, é um software que qualquer pessoa pode baixar, usar e modificar o código.
O sistema Git possibilita:
VOCÊ SABIA?
O Git e o GitHub foram desenvolvidos por Linus Torvalds, o criador do sistema Linux.
SAIBA MAIS...
Estude mais sobre sistemas centralizados e distribuídos clicando aqui.
O Git foi projetado para ambientes estilo Unix, como os sistemas operacionais Linux e macOS. Para o sistema Microsoft Windows, é necessário instalar o Git Bash que emula o terminal (ou prompt) do Git.
Clique no player a seguir para acessar o vídeo com a instalação passo a passo do Git no Windows.
Depois de instalado o Git, é hora de realizar as configurações iniciais.
A primeira configuração é identificar o nome de usuário e um endereço de e-mail. Assim, todas as atualizações (ou commits) feitas poderão ser identificadas.
Essa configuração pode ser global (válida para todo o sistema) ou local (para um projeto específico).
Fazendo a configuração global, não é necessário configurar cada projeto. Se a configuração local precisa ser alterada para um projeto específico, você pode rodar o comando sem a configuração global neste projeto.
Para esta configuração, utilizaremos o comando git config
.
git config
e depois digite seu nome de usuário e seu e-mail, como na imagem a seguir, e tecle Enter.importante
Esses dois passos atualizarão suas informações de usuário e cada alteração feita manterá sua identidade como autor.
Posteriormente, seu resultado será algo semelhante a isto.
1. O versionamento de código é realizado por um sistema de controle de versões. Selecione verdadeiro ou falso para cada alternativa a seguir, considerando as características desse tipo de sistema.
Verdadeiro
Falso
Verdadeiro
Falso
Verdadeiro
Falso
Verdadeiro
Falso
2. Selecione a alternativa correta. O que é o Git?
Atenção
Selecione uma alternativa.
Parabéns!
O Git é um Sistema de Controle de Versão Distribuído que mantém cada alteração realizada em uma máquina local e também no servidor central.
Ops! Tente novamente.
Lembre-se de que os sistemas de versão podem ser tanto centralizados quanto distribuídos.
Ops! Resposta incorreta.
A resposta correta é a alternativa c. O Git é um Sistema de Controle de Versão Distribuído que mantém cada alteração realizada em uma máquina local e também no servidor central.
3. Associe corretamente as características do sistemas GIT.
a. Sistema que emula o prompt de comando estilo Unix. | |
b. O Git é um software que qualquer pessoa pode baixar, usar e modificar o código. | |
c. Comando para identificar o nome de usuário e o seu endereço de e-mail. | |
d. Janela na qual se digita linhas de comando. |
4. Identifique a resposta correta. O sistema de versionamento Git permite várias possibilidades. Dentre elas, podemos destacar:
Atenção
Selecione uma alternativa.
Parabéns! Resposta correta.
O Git permite que vários programadores trabalhem no mesmo arquivo, registrando todo o histórico de alterações.
Ops! Tente novamente.
Lembre-se de que o sistemas Git registra todo o histórico de alterações realizadas no código e identifica quem realizou a mudança.
Ops! Resposta incorreta.
A resposta correta é a alternativa d. O Git permite que vários programadores trabalhem no mesmo arquivo, registrando todo o histórico de alterações.
Você estudou que o processo de programação de qualquer sistema pode gerar uma grande quantidade de códigos e milhares de arquivos. Por isso, é imprescindível a utilização de uma ferramenta de versionamento que garanta o controle de cada versão do desenvolvimento de códigos, de modo que vários programadores possam realizar alterações simultaneamente e o autor da alteração também seja identificado.
Uma dessas ferramentas é o Git, um sistema gratuito para controle de versão de código, que registra todo o histórico de alterações e seus respectivos autores, permitindo o acesso a versões anteriores, o trabalho simultâneo em um mesmo arquivo, além da restauração de um código removido ou modificado.
No próximo desafio...
...você conhecerá como realizar todas as configurações e demais ações necessárias para a prática de monitoramento e gerenciamento de alterações no código.
Aviso
Parece que você já iniciou o curso, você pode: