Tutorial: Controle seu Código Fonte de Graça com GIT e Azure DevOps

Disponível também em inglês

Nesse tutorial você irá aprender como controlar seu código fonte no GIT usando Azure DevOps da Microsoft e não pagar mais nada por isso.

Controle seu Código Fonte de Graça com GIT e Azure DevOps

Clique aqui para baixar o código fonte de apoio para esse artigo ou se preferir, utilize o seu código fonte mesmo.

O tutorial foi dividido em 3 tópicos principais. Se preferir pode pular um tópico ou outro. Antes de tudo, demonstro todo o padrão de texto, tópicos e passo a passo do tutorial para que você não se perca na leitura. Todas as informações importantes presentes neste artigo, serão destacadas com o título Pulo do Gato.

A partir desse ponto, a leitura do tutorial é de 5 minutos, e sua aplicação 10 minutos.


#1 – Overview do tutorial

  • O tutorial será explicado em # Passo 01, # Passo 02… e assim por diante.
  • Em cada Passo, as ações Acesse, Abra, Configure e outras, estarão sempre no início do texto e em negrito.
  • Palavras-chave nos textos terão links a artigos deste Blog ou outros, sempre como referência.
  • A minha opinião/observação será feita sempre ao final de cada tópico.
  • O Pulo do gato, estará sempre em negrito e bem destacado conforme exemplo abaixo:

Pulo do Gato: Você pode baixar todo o código fonte deste tutorial sem ler absolutamente nada. Para fazer isso basta acessar meu github.

DESIGN PATTERNS vol.1 - Programação no Mundo Real - Fabio Silva Lima


#2 – Pré-requisitos para o tutorial.

Se você não está familiarizado com o Azure DevOps, vou tentar explicar de forma que você não fique perdido. Para realizar o tutorial, você vai precisar:

  • Instalar Visual Studio 2017, em qualquer versão, até mesmo a Community, que é uma versão gratuita. Hoje em dia está fácil instalar essa IDE, diferente de quando instalei pela primeira vez no UNBOXING Visual Studio 2017: Primeiras impressões no Mundo Real.
  • Vincular seu e-mail a uma conta Microsoft. Se você possui conta em algum serviço Microsoft (Skype, MSN, Live, Office 365 entre outros), você não precisa fazer mais essa vinculação.
  • Ter uma conta no Azure DevOps. Por exemplo, a minha conta é fabiosilvalima.visualstudio.com. Se não tem, crie uma aqui, é gratuito.
  • Criar um projeto do tipo GIT no Azure DevOps. Se possível nomeá-lo como Tutorial 2 para se familiarizar com esse tutorial.
  • Certifique-se que projeto e solution FSL.Framework.Core criados está no seu computador e compilando.


#3 – Colocando o Código Fonte no GIT do Azure DevOps

O que faremos?

Vamos subir todo o nosso código FSL.Framework.Core para um repositório de código fonte GIT no Azure DevOps, para que possamos gerenciar as versões do nosso código fonte, rastrear alterações realizadas por desenvolvedores entre outras coisas.

Vamos lá!

# Passo 01: Feche a solution do projeto FSL.Framework.Core se estiver aberta.

# Passo 02: Crie uma pasta (com nenhum conteúdo) em algum diretório. Para esse artigo, vou criar em c:\inetpub\wwwroot\TFS\FabioSilvaLima\Tutorial2.

Pulo do gato: A pasta c:\inetpub\wwwroot\TFS\FabioSilvaLima\Tutorial2 precisa estar em branco, ou seja, sem nenhum arquivo ou pasta dentro.

# Passo 03: Abra o Visual Studio, clique no menu Team, em seguida Manage Connections e novamente no link azul Manage Connections.

Abra o Visual Studio, clique em Team, Manage Connections e novamente no link azul Manage Connections.

# Passo 04: Clique em Add TFS Server e preencha com a sua conta do Azure DevOps, por exemplo, a minha é fabiosilvalima.visualstudio.com. Forneça credenciais da sua conta Microsoft quando solicitado.

# Passo 05: Escolha, na lista de servers, o projeto Tutorial 2 e repositório de código fonte Tutorial 2. Preencha o campo Path com caminho C:\inetpub\wwwroot\TFS\FabioSilvaLima\Tutorial2 e clique em Clone.

Clique em Add TFS Server e preencha com a sua conta do Azure DevOps, por exemplo, a minha é fabiosilvalima.visualstudio.com. Forneça credenciais da sua conta Microsoft quando solicitado

# Passo 06: Copie todos os arquivos e pastas (exceto pastas .git e .vs) do FSL.Framework.Core para a nova pasta C:\inetpub\wwwroot\TFS\FabioSilvaLima\Tutorial2.

# Passo 07: Clique em Changes na janela do Team Explorer do Visual Studio.

Clique em Changes na janela do Team Explorer do Visual Studio.


#Ignorando arquivos e pastas com .gitignore

# Passo 08: Clique com o botão direito do mouse em cima das pastas destacadas abaixo e escolha a opção Ignore these local items.

  • \.vs
  • \bin
  • \obj
  • \packages

Quando a gente versionar o nosso código fonte no GIT, nós não precisamos armazenar arquivos que estão na pasta packages, arquivos que estejam na pasta \bin e \obj, arquivos do visual studio em \.vs entre outros. Nós só iremos versionar somente o que for realmente código fonte e não compilações, executáveis etc.

Pulo do gato: Arquivos com extensão .usr também devem ser ignorados, já que esses guardam informações do desenvolvedor. Se você versionar esse arquivo, e tiver outros desenvolvedores na equipe, vai ter dor de cabeça, pois a todo momento o GIT acusará alteração nesse arquivo e dará conflito de merge entre os desenvolvedores.

# Passo 09: Escreva um comentário no campo e clique em Commit Staged e depois outro comentário e clique em Commit All.

Escreva um comentário no campo e clique em Commit Staged e depois outro comentário e clique em Commit All

# Passo 10: Clique no ícone azul Sync e depois no botão Push para “subir” esse commit para o repositório de código fonte Tutorial 2 para dentro do Azure DevOps.

Clique no ícone azul Sync e depois no botão Push para subir esse commit para o repositório de código fonte Tutorial 2 para dentro do Azure DevOps.

Clique no ícone azul Sync e depois no botão Push para subir esse commit para o repositório de código fonte Tutorial 2 para dentro do Azure DevOps.

Eu Apoio Fabio Silva Lima


#Glossário

Manage Connections: Configuração e seleção de conexões a repositórios GIT e/ou Azure DevOps.

Team Explorer: Janela do Visual Studio que contempla as funcionalidades para se comunicar com o engine GIT e outros.

Changes: Opção do Team Explorer que mostra todas as alterações que estão sendo realizadas neste código fonte.

Commit: Comando no Team Explorer para registrar uma alteração no código fonte. Dentro do commit é guardado as alterações realizadas, data/hora e quem fez a alteração. Commits são sempre local, ou seja, eles inicialmente ficam na máquina do desenvolvedor, até que sejam subidos ao Azure DevOps.

Push: Comando no Team Explorer para subir os commits da máquina do desenvolvedor para o servidor Azure DevOps. Não esqueça de fazer o Push após fazer os Commits.

Branch: Versionamento de um repositório de código fonte. Todo versionamento possui inicialmente uma branch chamada master, a partir dessa master podem ser criadas outras branches (versionamentos) com outros nomes.

Observação: Todos os botões e links do Team Explorer nada mais são que atalhos aos comandos do engine GIT, quem também podem ser realizados via command line.


#Visualizando o Código Fonte no Azure DevOps

# Passo 11: Abra o Azure DevOps, navegue até o projeto Tutorial 2 e clique na guia Repos e depois Files.

Abra o Azure DevOps, navegue até o projeto Tutorial 2 e clique na guia Repos e depois Files.

# Passo 12: Clique sobre o projeto FSL.Framework.Core na lista e depois FSL.StringExtension.cs. Repare que é possível fazer modificações no arquivo diretamente por aí, sem precisar abrir o Visual Studio.

repare que é possível fazer modificações no arquivo diretamente por aí, sem precisar abrir o Visual Studio.



Não tenho MVP e daí?


#Alternar entre versões de Código Fonte no Azure DevOps

A branch master, por convenção, é a branch mais atualizada, é a branch que contém o código fonte do ambiente de produção. No mundo real nós não podemos desenvolver (alteração ou novas funcionalidades) na branch master quando o nosso código estiver em produção. Por isso, nós vamos criar nova branch de desenvolvimento a partir da branch master. Dessa forma, conseguirei demonstrar a funcionalidade de merge, que é a “fusão” entre duas branches.

# Passo 13: Clique em Repos e Branches. Na branch master, clique no botão e depois em New branch.

Clique em Repos e Branches. Na branch master, clique no botão ... e depois em New branch.

# Passo 14: Preencha o nome da branch como tutorial2_novas_extensions_dev e clique em Create Branch.

tutorial2_novas_extensions_dev

# Passo 15: Abra o Visual Studio 2017 e conecte no projeto Tutorial2. Na janela Team Explorer, clique em Sync.

Na janela Team Explorer, clique em Sync

# Passo 16: Clique no link azul Fetch e depois Pull. Isso fará com que a definições de branches do seu computador seja atualizada, aparecendo assim a nova branch tutorial2_novas_extensions_dev.

# Passo 17: Clique no ícone Home (casinha) na janela do Team Explorer e depois em Branches. Após isso, clique no ícone para abrir a lista de branches remotas e dê um duplo clique na branch tutorial2_novas_extensions_dev.

Após isso, clique no ícone para abrir a lista de branches remotas e dê um duplo clique na branch tutorial2_novas_extensions_dev


#Editar branch de desenvolvimento

# Passo 18: Inclua o bloco de código abaixo no arquivo FSLStringExtension.cs e certifique-se bem se você está com a branch master ou tutorial2_novas_extensions_dev. Dê um Commit e faça um Push dessa alteração. Essa alteração deve aparecer no histório, lá em Repos e Files do projeto Tutorial 2 no Azure DevOps.

Essa alteração deve aparecer no histório, lá em Repos e Files do projeto Tutorial 2 no Azure DevOps.

Dê um Commit e faça um Pushdessa alteração. Essa alteração deve aparecer no histório


#Fazer o merge entre branches

# Passo 19: Acesse o menu Repos e depois Pull Requests no projeto Tutorial 2 no Azure DevOps. Em Seguida clique no botão azul New Pull Request (lado direito).

Repos e depois Pull Requests no projeto Tutorial 2 no Azure DevOps

Repos e depois Pull Requests no projeto Tutorial 2 no Azure DevOps

Vamos supor que você testou todo esse código fonte, e precisa atualizar a branch master, então você faz um Pull Request (entrega).

# Passo 20: Escolha a branch tutorial2_novas_extensions_dev como origem e a master como destino. Depois clique no botão Create.

Depois clique no botão Create.

# Passo 21: Clique em Complete.

# Passo 22: Desmarque todos os checkboxes e clique em Complete Merge. Isso fará com que a alteração realizada em tutorial2_novas_extensions_dev seja passada para a branch master.

clique em Complete Merge. Isso fará com que a alteração realizada

tutorial2_novas_extensions_dev seja passada para a branch master


#Comentários finais

O objetivo principal deste tutorial, seria simplesmente subir um código fonte no GIT no Azure DevOps, mas além disso vimos mais alguns exemplos, como criar branches e fazer o merge entre elas. As nomenclaturas das branches foram exclusivamente ilustrativas, você pode adotar o padrão que quiser para a nomenclatura de suas branches. Discutirei essa questão mais aprofundada em outro artigo, com itens mais avançados.

Faltou alguma coisa? Encontrou erro?
Comente, critique, compartilhe!

Obrigado e até a próxima!

Faça download completo do código fonte no github.
Sobre o Autor:
Trabalha como arquiteto de soluções e desenvolvedor, tem mais de 18 anos de experiência em desenvolvimento de software em diversas plataformas sendo mais de 16 anos somente para o mercado de seguros.
Revisado por:
Um rapaz curioso que sempre gostou de Tecnologia, ciência e questões filosóficas. Entrou no mundo da programação em 2011 e hoje trabalha com desenvolvimento mobile back-end em C#, e desenvolvimento de apps em iOS. Sente um grande interesse por ciência de dados, e no futuro ainda pretende cursar Física.


Apaixonado por tecnologia, atualmente trabalho com aplicações web e estou aprofundando meu conhecimento em mobile. Meu objetivo é contribuir com a comunidade ajudando os desenvolvedores que estão iniciando.