Prévia do material em texto
Implantação de um Sistema de Controle de Versões Distribuído Apresentação Com o crescimento do desenvolvimento de softwares, especialmente entre equipes que atuam colaborativamente, o controle de versão se tornou indispensável, uma vez que analistas podem editar e modificar arquivos de código-fonte de seus projetos com bastante frequência. Com isso, os softwares de controle de versão obtiveram larga expansão no mercado, visto que foram projetados para promover segurança no controle de modificações, assim como facilidade de uso por meio de funcionalidades intuitivas e bem definidas. Nesta Unidade de Aprendizagem, você vai estudar sobre a criação de repositórios Git e GitHub, a associação entre esses repositórios, e a transferência de arquivos do repositório local para o GitHub. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Criar repositórios Git e GitHub.• Relacionar o repositório local com o repositório remoto.• Transferir repositório local para o GitHub.• Desafio Controlar as versões dos códigos-fonte de um projeto de desenvolvimento de sistemas é uma questão essencial para equipes que atuam colaborativamente. O planejamento e a execução do controle de versão devem seguir os passos elaborados pela coordenação da equipe, que define a melhor estratégia com base nos recursos e nos objetivos de cada organização. Imagine que você precisar elaborar uma estratégia de controle de versão considerando os seguintes itens: • n Modificação local do código-fonte pelos analistas.• n Atualização em servidor centralizado.• n Atualização de arquivos sempre que determinado código-fonte for aprovado. • Dessa forma, cite os itens que fazem parte da estratégia de controle de versão elaborada e justifique a sua escolha. Infográfico Desenvolver sistemas colaborativos, em que diversos desenvolvedores atuam de maneira integrada, é cada vez mais comum. No entanto, eventualmente pode ser preciso que determinadas funcionalidades sejam tratadas paralelamente por desenvolvedores, e as modificações de uma funcionalidade mais crítica devem ser repassadas para as outras durante o desenvolvimento destas. Um exemplo disso são as manutenções corretivas, que têm maior prioridade de execução e devem ser adicionadas às demais alterações, mesmo enquanto estas não estejam concluídas. Essa estratégia é implementada no GitHub pela inclusão de branches, os quais definem manutenções isoladas que podem ser unidas posteriormente. Veja no Infográfico a representação dos branches de um projeto no GitHub. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/cee0c66d-7227-4eae-a443-39ab7a5bcf94/3909db29-ab25-4794-9654-ec6697c7ff4b.jpg Conteúdo do Livro Controlar as versões dos arquivos de projetos de software é uma atividade essencial para qualquer equipe que atua no desenvolvimento colaborativo, uma vez que perder o código-fonte não faz parte dos planos de nenhuma organização. Por meio do controle de versão, é possível gerenciar, de maneira eficaz, todas as modificações que são realizadas nos códigos-fontes, como a data e a hora, o responsável pela modificação, e o que foi modificado em cada arquivo. Todas essas funcionalidades são características essenciais das ferramentas de controle de versão Git e GitHub, que atuam integradas como controle de versão local e remoto, respectivamente. No capítulo Implantação de um sistema de controle de versões distribuído, da obra Programação Back End II, você vai estudar sobre como criar repositórios Git e GitHub, relacionar o repositório local com o remoto, bem como transferir do repositório local para o remoto. Boa leitura. PROGRAMAÇÃO BACK END II Maurício de Oliveira Saraiva Implantação de um sistema de controle de versões distribuído Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Criar repositórios Git e GitHub. � Relacionar o repositório local com o repositório remoto. � Transferir o repositório local para o GitHub. Introdução Com a evolução da tecnologia da informação, os sistemas se tornaram cada vez maiores e mais complexos, exigindo, em muitos casos, a co- laboração entre diversos desenvolvedores de uma ou mais equipes, de modo que as tarefas possam ser divididas em grupos especializados. A partir desse processo colaborativo, identificou-se a necessidade de controlar as versões dos arquivos dos projetos em repositórios locais e remotos, uma vez que muitos arquivos são modificados isoladamente pelos desenvolvedores. Neste capítulo, você irá estudar sobre a criação de repositórios Git e GitHub para o controle de versão de arquivos, o relacionamento entre o repositório local e o repositório remoto e a transferência do repositório local para o GitHub. Repositórios Git e Github Normalmente utilizados por programadores para gerenciar as versões de seus códigos-fonte, Git e GitHub são repositórios open source que implementam o versionamento eficiente de arquivos. O gerenciamento ocorre pelo controle das alterações realizadas nos arquivos utilizados em projetos de qualquer natureza (GIT..., 2019b; GITHUB..., 2019). As versões são gerenciadas pelos usuários, em âmbito local (Git) ou remoto (GitHub), e estes decidem o momento em que elas serão registradas/atualizadas. Isso significa que todas as versões que foram definidas podem ser restauradas, permitindo, assim, um bom controle de versão dos arquivos. Git Criado por Linus Torvalds, o Git é um sistema distribuído de controle de versão que tem como objetivo gerenciar as modificações realizadas nos arquivos de um determinado projeto no âmbito local. Embora tenha sido criado com o objetivo de controlar as versões de sistemas em desenvolvimento, pode gerenciar o histórico de modificações em arquivos de qualquer tipo de projeto (GIT..., 2019a). O Git trabalha com uma estrutura em forma de árvore, cujas modificações realizadas podem ser organizadas em ramificações (branches) para facilitar a administração do conteúdo. O controle de versão implementado pelo Git facilita o trabalho colaborativo, registrando dados das modificações realizadas nos arquivos, bem como seus responsáveis (GIT..., 2019c). Este sistema pode ser baixado em seu site oficial, que contém links para sua documentação e fórum de discussão, assim como para os downloads, que estão disponíveis para diversas plataformas, como Windows, Linux/Unix e Mac OS X. Acesse o link a seguir para fazer o download do Git. https://qrgo.page.link/bCvB1 Implantação de um sistema de controle de versões distribuído2 A instalação do Git é simples e não requer nenhuma configuração adicional: basta clicar no botão next das janelas que aparecem durante a execução do assistente de instalação. Após concluir a instalação, pode-se criar um repositório local por meio de sua interface gráfica, Graphical User Interface (GUI), ou por linha de comando (Git Bash). Neste capítulo, apresentaremos a criação dos repositórios por meio de sua interface gráfica. Repositório Git Criar um repositório local é o primeiro passo para começar a trabalhar com o Git. Para isso, clique com o botão direito do mouse em qualquer pasta do gerenciador de arquivos de seu computador e selecione Git GUI Here, conforme ilustra a Figura 1. Figura 1. Acessando o Git GUI. Uma janela do Git GUI que apresenta a opção criar um novo repositório (Create New Repository) será aberta, conforme ilustrado na Figura 2. 3Implantação de um sistema de controle de versões distribuído Figura 2. Janela principal do Git GUI. Clique na opção indicada anteriormente e selecione o local em que o projeto está instalado em seu computador. Em seguida, clique no botão Create para confirmar a criação do novo repositório, conforme apresentado na Figura 3. Figura 3. Selecionando a pasta do repositório. Após a criação do repositório, uma subpastanomeada .git será criada na pasta do projeto. Essa subpasta contém os elementos que farão o gerenciamento das versões dos arquivos do projeto. Implantação de um sistema de controle de versões distribuído4 A interface gráfica apresentará a lista de arquivos do repositório, cujo status da corrente branch encontra-se como Unstaged Changes, o que significa que as mudanças ainda não foram organizadas. Neste momento é preciso configurar apenas o usuário e o e-mail, que futuramente serão utilizados para acessar o repositório remoto (GitHub). Para isso, acesse o menu Edit — Options da interface gráfica e preencha User Name e Email Address nos dois lados da janela, conforme ilustrado na Figura 4. As demais opções não precisam ser modificadas. Figura 4. Inserindo o nome do usuário e o e-mail. GitHub O GitHub é um serviço open source de hospedagem de código-fonte que permite o controle de versão de arquivos de projetos de diversos tipos. Os arquivos, que são armazenados em branches, podem ser sincronizados com repositórios locais Git, permitindo fazer uploads ou downloads quando necessário (GITHUB..., 2019). 5Implantação de um sistema de controle de versões distribuído Este serviço pode ser acessado no link a seguir. http://www.github.com/ Acesse o site indicado e faça o login (Sign in) com sua conta ou crie (Sign up) uma conta, caso ainda não tenha. Para o registro do login é preciso informar um nome de usuário inédito, assim como um e-mail válido e uma senha que possua entre oito e 15 caracteres, contendo números e letras. Repositório GitHub Após entrar no GitHub, clique na opção New, no canto superior esquerdo da janela, para criar um repositório remoto. Preencha o nome do repositório e sua descrição. Após, selecione se o repositório é público ou privado e clique em Create repositor, conforme ilustra a Figura 5. Figura 5. Criando um repositório remoto. Implantação de um sistema de controle de versões distribuído6 Relacionamento entre o repositório local e repositório remoto Uma vez que os repositórios local (Git) e remoto (GitHub) tenham sido criados, é possível relacioná-los de modo que os arquivos do repositório local possam ser copiados para o repositório remoto, ou vice-versa. Para isso, acesse a interface gráfica do Git e selecione a opção Add do menu Remote, como ilustra a Figura 6. Figura 6. Adicionando um repositório remoto. Na janela Add New Remote, como mostra a Figura 7, preencha o nome do repositório remoto e o link desse repositório no serviço GitHub. Neste momento, o propósito é associar os repositórios local e remoto. Sendo assim, selecione a opção Do Nothing Else Now para somente deixá-los relacionados. 7Implantação de um sistema de controle de versões distribuído Figura 7. Nome e localização do repositório remoto. A partir do momento em que a associação é realizada, o menu Remote passa a apresentar as opções que permitem manipular o repositório remoto, conforme ilustrado na Figura 8. Figura 8. Opções de manipulação do repositório remoto. Implantação de um sistema de controle de versões distribuído8 Transferência do repositório local para o GitHub Para transferir os arquivos do repositório local para o Github é preciso adicioná- -los na área Staged, localizada logo abaixo da área Unstaged na interface Git, conforme mostra a Figura 9. Para isso, selecione os arquivos desejados e clique na opção Stage Changed e, após, confirme clicando em Sim. Figura 9. Execução do comando Commit. Esta operação faz com que os arquivos sejam movidos para a área Staged Changes da interface gráfica Git. Preencha um comentário em Commit Message e clique no botão Commit na caixa ao lado. Após, clique no botão Push, que fica logo abaixo do botão Commit. Verifique o nome do repositório remoto e confirme no botão Push da janela, conforme apresentado na Figura 10. 9Implantação de um sistema de controle de versões distribuído Figura 10. Execução do comando Push. A Figura 11 apresenta o resultado da execução do upload dos arquivos, após a execução do Push. Figura 11. Resultado do push. Implantação de um sistema de controle de versões distribuído10 Agora o repositório remoto (GitHub) apresenta os arquivos do projeto que foram transferidos do repositório local (Git), conforme ilustrado na Figura 12. Figura 12. Resultado da execução do comando push. GIT – a free open source distributed version control system. Git/Software Freedom Con- servancy, New York, 2019a. Disponível em: https://git-scm.com/. Acesso em: 21 ago. 2019. GIT – Getting Started – A Short History of Git. Git/Software Freedom Conservancy, New York, 2019b. Disponível em: https://git-scm.com/book/en/v2/Getting-Started-A-Short- -History-of-Git. Acesso em: 21 ago. 2019. GIT – Reference. Git/Software Freedom Conservancy, New York, 2019c. Disponível em: https://git-scm.com/docs. Acesso em: 21 ago. 2019. 11Implantação de um sistema de controle de versões distribuído GITHUB – The world’s leading software development platform. GitHub, San Francisco, 2019. Disponível em: https://github.com/. Acesso em: 21 ago. 2019. Leitura recomendada AQUILES, A.; FERREIRA, R. Controlando versões com Git e GitHub. São Paulo: Casa do Código, 2014. 220 p. Implantação de um sistema de controle de versões distribuído12 Dica do Professor O GitHub é um repositório open source para a publicação de material relativo ao desenvolvimento de sistemas, como arquivos de código-fonte e projetos de software. Além de gerenciar o controle de versão de arquivos, possui diversas outras funcionalidades que auxiliam a comunidade de desenvolvimento de sistemas. Nesta Dica do Professor, conheça sobre a busca de conteúdo no GitHub. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/9b4995433705717d44daab4a9fe11541 Exercícios 1) Gerenciar as modificações feitas nos códigos-fonte dos projetos é uma atividade fundamental para quem trabalha com o desenvolvimento de softwares, sendo o Git um dos programas mais utilizados para o versionamento local de arquivos. Considerando as definições do Git, de que forma ele organiza localmente as informações das versões dos arquivos? A) Registra as informações dos arquivos no arquivo readme.md. B) Cria uma pasta chamada src e registra nela as informações dos projetos. C) Utiliza uma pasta chamada .git e nela deposita as informações dos arquivos. D) O gerenciamento ocorre pelo modo GNU, que possui as configurações dos arquivos. E) Registra as informações das versões dos arquivos em uma pasta chamada model. 2) Considerando que o sistema de controle de versões Git foi instalado para gerenciar as versões dos arquivos de código-fonte de um projeto de desenvolvimento de um sistema, indique a alternativa que considera quais campos precisam ser configurados nas opções do Git logo após a criação do repositório, para que futuramente o Git possa se conectar com o repositório remoto. A) E-mail e senha do usuário. B) Nome e senha do usuário. C) E-mail do usuário e local do repositório. D) Nome do usuário e local do repositório. E) Nome e e-mail do usuário. 3) Git é um sistema de controle de versão de arquivos que auxilia no desenvolvimento de sistemas e que se integra com o GitHub para a transferência de arquivos do repositório local para o remoto. Quando existe um repositório remoto no GitHub, quais dados precisam ser configurados no Git para fazer o relacionamento entre esses repositórios? A) Nome do usuário do repositório GitHub e nome do repositório. B) Nome do repositório GitHub e e-mail do dono do repositório. C) Nome do usuário e a senha do repositório GitHub. D) Nome do repositório e caminho do repositório no GitHub. E) Nome do usuário do repositório GitHub e caminho do repositório remoto. 4) No GitHub existe a definição de estruturas em forma de árvore que mantêm as histórias do repositório em diferentesramos. Essas estruturas permitem a edição de funcionalidades em paralelo, por diferentes equipes de desenvolvimento. Com base no exposto, identifique como se chamam essas estruturas no serviço GitHub. A) Branch. B) Commit. C) Merge. D) Pull request. E) Push. 5) A transferência de arquivos do repositório local (Git) para o repositório remoto permite que os códigos-fonte fiquem disponíveis no serviço web GitHub. Baseando-se na ferramenta de interface gráfica Git, selecione a opção que apresenta a ordem das ações que devem ser executadas para realizar o upload de arquivos. A) Adicionar os arquivos à staged area, fazer commit das modificações e realizar o push para o repositório remoto. B) Adicionar os arquivos à unstaged area, fazer commit das modificações e realizar o push para o repositório remoto. C) Realizar commit das modificações, remover os arquivos da staged area e realizar o push para o repositório remoto. D) Adicionar os arquivos à staged area, realizar o push para o repositório remoto, fazer commit das modificações e adicionar os arquivos à unstaged area. E) Realizar o push para o repositório remoto, adicionar os arquivos à staged area, fazer commit das modificações e realizar o remote add. Na prática O uso de controle de versão dos arquivos de projetos de desenvolvimento de software se tornou indispensável desde a implantação e divulgação das ferramentas de versionamento de código- fonte. Por meio desse controle, as equipes de desenvolvimento atuam de forma organizada e segura, uma vez que o gerenciamento de versões permite administrar adequadamente as diversas modificações que são realizadas nos sistemas. Existem diversos softwares de controle de versão existentes no mercado, dos quais o Git e o GitHub se destacam por diversos motivos, como a vasta utilização pela comunidade de desenvolvimento de software e a facilidade de instalação e de uso. Para demonstrar a importância do uso de controle de versão de software, confira, Na Prática, o caso vivenciado por JP da Silva. Conteúdo interativo disponível na plataforma de ensino! Saiba mais Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Como criar um repositório no GitHub e clonar no Windows Assista ao vídeo a seguir para saber mais sobre a criação de uma conta no GitHub e sobre como criar repositórios. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Introdução sobre controle de versão Leia o documento a seguir para saber mais sobre controle de versão com Git. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Como instalar e configurar o Git no Windows Assista ao vídeo a seguir para saber mais sobre a instalação e a configuração do Git no Windows, e também sobre seus principais comandos. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.youtube.com/embed/h1-XZ9Kh1H4 https://git-scm.com/book/pt-br/v2/Come%C3%A7ando-Sobre-Controle-de-Vers%C3%A3o https://www.youtube.com/embed/SOxafinthys