Criado no ano de 2008 como uma solução Web voltada ao versionamento de projetos, o GitHub é hoje uma das principais alternativas empregadas no gerenciamento de código em aplicações open source. Tomando por base a ferramenta Git (mecanismo controlador de versões concebido por Linus Torvalds, o “pai” do Linux), o GitHub é um serviço que procura fornecer meios para controlar as mudanças em um projeto a partir de repositórios criados na Web.

Por desfrutar de um grande reconhecimento dentro da área de desenvolvimento de softwares, o GitHub vem sendo utilizado pela própria Microsoft para o armazenamento de soluções livres. Bons exemplos disto são as versões recentes de projetos open source como o Entity Framework e o ASP.NET vNext, as quais encontram-se hospedadas em repositórios gerados por meio deste serviço.

logo do github

Do ponto de vista prático, um desenvolvedor que deseje trabalhar em um projeto hospedado no GitHub irá baixar a solução para o seu computador, a fim de realizar uma ou mais tarefas. Uma vez que tenha concluído os ajustes, chega o momento de sincronizar o repositório confirmando as modificações efetuadas previamente. O conteúdo de um repositório poderá ser acessado publicamente para download (no caso de soluções open source) ou ainda, de maneira restrita mediante a contratação de um plano de hospedagem.

No caso específico do desenvolvimento dentro do ambiente Windows, existe uma aplicação cujo objetivo é simplificar as operações de manipulação de repositórios criados através do GitHub: trata-se do utilitário GitHub for Windows (atualmente na versão 2.0, de Setembro de 2014).

O objetivo deste artigo é demonstrar como o GitHub for Windows pode ser utilizado no versionamento de projetos hospedados na Web. Para isto será criado um novo repositório por meio do serviço GitHub, no qual será armazenada uma solução baseada na tecnologia ASP.NET MVC.

Utilizando o GitHub for Windows

Os procedimentos descritos nesta seção farão uso de um projeto chamado TesteGitHubWindows. Baseada no framework ASP.NET MVC 5.2.2, esta aplicação (Figura 1) foi criada através do Visual Studio Professional 2013 Update 3. O download da solução correspondente pode ser efetuado acessando a página do GitHub.

Tela inicial da
aplicação TesteGitHubWindows

Figura 1. Tela inicial da aplicação TesteGitHubWindows

Os próximos passos agora serão criar uma conta no site do serviço GitHub, assim como efetuar o download e instalação do GitHub for Windows 2.0.

Concluído o processo de instalação, será necessário acessar o GitHub for Windows. Na tela inicial desta ferramenta acione o botão com o símbolo “+”, a fim de criar um novo repositório, como mostra a Figura 2.

Tela inicial do
utilitário GitHub for Windows 2.0

Figura 2. Tela inicial do utilitário GitHub for Windows 2.0

Na Figura 3 está a tela exibida ao se solicitar a criação de um repositório. Dentro desta janela é possível tanto a geração de um novo repositório do zero ou apontando para uma pasta pré-existente (acessar ao final a opção “Create Repository”), quanto a clonagem de outro repositório criado anteriormente através do serviço GitHub. No exemplo aqui abordado, estamos admitindo que a solução TesteGitHubWindows está localizada no diretório “C:\Desenvolvimento\TesteGitHubWindows\”.

Criando um novo
repositório no GitHub for Windows 2.0

Figura 3. Criando um novo repositório no GitHub for Windows 2.0

Uma nova janela irá listar todos os arquivos encontrados a partir do diretório-raiz do repositório TesteGitHubWindows, assim como mostra a Figura 4.

Conteúdo do
repositório TesteGitHubWindows

Figura 4. Conteúdo do repositório TesteGitHubWindows

Alguns diretórios gerados para a solução TesteGitHubWindows não deverão ser incluídos no repositório a ser criado no GitHub. Este procedimento tem por objetivo reduzir o tamanho da solução armazenada na Web, uma vez que o Visual Studio é capaz de recuperar/recriar o conteúdo de tais pastas automaticamente (seja baixando bibliotecas/packages via utilitário NuGet ou, até mesmo, gerando arquivos nas extensões .dll, .exe e .config a partir da compilação do projeto).

Arquivos podem ser ignorados clicando-se em uma opção específica com o botão direito do mouse, dentro da listagem exibida para um repositório no GitHub for Windows, como mostra a Figura 5.

Ignorando um
arquivo a partir do GitHub for Windows

Figura 5. Ignorando um arquivo a partir do GitHub for Windows

Independente de se estar ignorando arquivos individuais e/ou pastas, o GitHub conseguirá compreender tal instrução através de um arquivo chamado chamado “.gitignore” (o qual deverá constar na raiz do repositório, como indicado na Figura 6).

Arquivo .gitignore
na raiz de um repositório

Figura 6. Arquivo .gitignore na raiz de um repositório

Para a Solution TesteGitHubWindows serão ignorados:

  • Os diretórios “package” (pacotes do NuGet utilizados pela aplicação), “bin” e “obj” (estes dois últimos têm seu conteúdo gerado quando da compilação de um projeto/solução);
  • Arquivos com a extensão “.suo” (preferência de um usuário para uma solução) e “.user” (preferências de um usuário para um projeto específico).

Na Figura 7 é possível visualizar o conteúdo (em formato texto) do arquivo “.gitignore”, com as configurações esperadas para a Solution “TesteGitHubWindows”.

Conteúdo do arquivo
.gitignore no repositório TesteGitHubWindows

Figura 7. Conteúdo do arquivo .gitignore no repositório TesteGitHubWindows

Com os arquivos que serão controlados pelo GitHub devidamente configurados, será necessário agora efetuar o “commit” dos mesmos. Este procedimento irá preparar o conteúdo do repositório TesteGitHubWindows para a publicação inicial no serviço GitHub. Preencha os campos assinalados na Figura 8, acionando na sequência a opção “Commit to master”.

Efetuando o commit
do repositório TesteGitHubWindows

Figura 8. Efetuando o commit do repositório TesteGitHubWindows

A fim de realizar a publicação inicial do repositório TesteGitHubWindows, clicar na opção “Publish Repository” (indicada na Figura 9). Uma tela de confirmação será exibida neste momento, como mostra a Figura 10. Nela teremos um campo “Description” para informar uma descrição resumida para o repositório. Por fim, clique em “Publish TesteGitHubWindows”,de maneira a confirmar o upload dos arquivos e a criação do novo repositório.

Publicando o
repositório TesteGitHubWindows

Figura 9. Publicando o repositório TesteGitHubWindows

Confirmando a
publicação do repositório TesteGitHubWindows

Figura 10. Confirmando a publicação do repositório TesteGitHubWindows

Concluído o processo de publicação, já será possível observar o repositório TesteGitHubWindows e todo o seu conteúdo dentro do serviço GitHub na Web. É o que demonstra a Figura 11, em que um teste de acesso a este novo repositório foi realizado a partir do Internet Explorer.

Pelo fato de o repositório TesteGitHubWindows ser público, o mesmo poderá ser baixado por qualquer usuário através do link mencionado no início desta seção. Como mostra a Figura 11, a opção “Download ZIP” possibilita o download de todo o conteúdo da Solution TesteGitHubWindows sob a forma de um arquivo .zip.

Repositório TesteGitHubWindows
já publicado no GitHub

Figura 11. Repositório TesteGitHubWindows já publicado no GitHub

Caso mudanças sejam feitas em um arquivo da Solution TesteGitHubWindows (como indicado na Figura 12), o utilitário GitHub for Windows também será capaz de detectar estas alterações. Acesse para isto a opção “Sync” (como mostra a Figura 13), a fim de que a ferramenta sincronize o estado do repositório local com o que se encontra na Web.

Opção para
sincronizar um repositório local

Figura 12. Alterando um arquivo através do Visual Studio

Opção para
sincronizar um repositório local

Figura 13. Opção para sincronizar um repositório local

Logo após a sincronização, o GitHub for Windows já terá detectado as mudanças e habilitará a opção que permite o “commit” das mesmas (da mesma forma que a apresentada na Figura 14). Nota-se inclusive um quadro em que é possível observar as mudanças que foram realizadas no arquivo Index.cshtml.

Mudanças
detectadas após sincronização

Figura 14. Mudanças detectadas após sincronização

Para confirmar as mudanças acionar a opção “Commit to master”. Neste momento, as alterações já constarão no repositório criado no serviço GitHub, como indicado na Figura 15.

Detalhamento de
uma mudança no serviço GitHub na Web

Figura 15. Detalhamento de uma mudança no serviço GitHub na Web

Conforme descrito ao longo deste artigo, o GitHub for Windows é uma ferramenta que possibilita a criação e manipulação de repositórios no serviço GitHub de uma maneira bastante simplificada. Embora a demonstração aqui realizada tenha girado em torno de um projeto baseado na tecnologia .NET, é importante destacar que o GitHub for Windows pode ser utilizado em projetos concebidos nas mais diversas plataformas e linguagens (como Java, Ruby, PHP, JavaScript, Delphi, dentre outros exemplos).

Espero que este conteúdo tenha sido útil.

Até uma próxima oportunidade!