Git básico…para quem está vindo do TFVC, ou Source Safe, ou SVN, …

Sexta-feira, 20 de Março, publiquei um vídeo do HOL de Git, mostrando como é a integração entre o Visual Studio, a partir do 2012 para repositórios locais e 2013 com hospedagem no TFS 2013, e o Git através de ferramentas visuais no Team Explorer. Se você não conhece a história do Git, saiba que ele foi criado na linha de comando e não em um ambiente gráfico. A Microsoft implementou apenas alguns comando no Team Explorer, basicamente os comando mais próximos do TFVC, o controle de versão centralizado. Você pode continuar utilizando a interface gráfica, aliás o Merge ficou muito bom e simples no Visual Studio, mas também pode usar a linha de comando, o que pode parecer complicado no início mas não é! Se você é adepto a diminuir o uso do mouse enquanto programa vai ver que será bem produtivo.

Quando você usa o TFVC, as seguintes ações são comuns:

Add Adicionar um arquivo
Branch Cria uma ramificação do código
Checkin Efetiva a alteração de código
Checkout Marca o arquivo para edição
Delete Apaga o arquivo
Difference Faz uma comparação entre o que foi alterado
Get Pega o arquivo do servidor
Merge Aplica as mudanças de uma branch em outra
Rename Renomeia o arquivo
Status Informação sobre mudanças pendendetes
Undo Desfaz uma alteração que está pendente de checkin
View Visuaiza uma versão de um arquivo

Existem outras ações, mas essa lista tem as principais, e são várias, não? Pareciam menos pois normalmente são executadas de maneira visual, com o mouse, o botão direito e o menu de contexto; daí a sensação que parecem ser mais simples. Também é possível executar esses comandos pelo console, você sabia? tf é um utilitário de linha de comando que pode ser acessado pelo prompt Developer Command Prompt for VS2013, mas raramente alguém faz uso dele.

Nosso objetivo neste post será reproduzir o exercío 1 do HOL de Git, vamos lá?

Para facilitar o uso do console eu recomendo:

Instale o ConEmu, você terá uma experiência muito melhor do que o ultrapassado Console do Windows, poderá maximizar a tela, isso vai ser bem proveitoso quando usando o Git no console, escolher fonte, cor e até transparência!!! E a melhor maneira de instalar é através do Chocolatey, gerenciador de pacotes do Windows, vamos usar ele depois novamente, então… instale!

Precisamos do Git, e para isso você tem pelo menos duas formas, quando conectamos no Team Project do Fabrikam Community no vídeo, apareceia uma mensagem em amarelo, como a figura abaixo:

IC675719

Clicando em Install você vai conseguir instalar o Git… Mas também podemos usar o Chocolatey!

Como eu criei o Team Project no TFS eu já tenho um repositório, é importante frisar que um repositório é sempre local no Git, ou seja tanto no Visual Studio como no console não estamos acessando o repositório no servidor, estamos acessando o repositório local, diferente do TFVC que o Visual Studio ou o utilitário tf funcionam como um cliente. Se eu criei o TP o repositório provavelmente está vazio, mas mesmo assim vamos “baixar” para a nossa máquina.

Vá no Team explorer > Home > link Web Portal, ou entre a URL do seu TFS no seu navegador favorito. Entre no menu CODE, a sua tela deve estar assim.

image

Essa é a representação de um repositório vazio, o Explorer não tem nenhum código, nenhum commit, … E você tem 2 quadros, um explicando como você clona este repositório na sua máquina o outro no caso de você ter começado o repositório na sua máquina e quer mandar ele para o servidor, vamos ficar com a primeira opção que se assemelha ao HOL. Lá já tem a linha exata que é preciso para clonar é só copiar:

git clone http://vsalm:8080/tfs/FabrikamFiberCollection/_git/FabrikamCommunity

Não se preocupe que ele irá criar uma pasta, tenho o costume de criar os meus repos em uma pasta chamada Workspace.

image

Ele identificou que eu clonei um repo vazio, mas tudo bem, agora precisamos criar o web site como no vídeo, no Visual Studio File > New > Project, escolha no Visual C# o ASP.Net Web Application, costumo criar um sub-pasta src para o código, então dentro de FabrikamCommunity crie e selecione src, veja:

image

Depois escolha MVC, retire o check do Host in the cloud e pronto! Dê umdir no console:

image

Provavelmente estará diferente do console de vocês, que não terá [master +1 ~0 –0 !], esse é um plug-in bastante interessante que dá um feedback rápido do status do seu repositório, ou seja, aqui ele está me dizendo que eu tenho arquivos não rastreados, ou untracked, e para saber mais sobre isso executamos o comando

git status

image

Esse comando irá listar a situação atual do repo, por exemplo, a pastasrc, que aparece como não traqueada.

O que está acontecendo nesse momento é que eu coloquei alguns arquivos na pasta mas não disse que eles deveriam ir para o repositório, no Visual Studio isso acontece automáticamente por que a IDE sabe que você irá querer adicionar os arquivos da solution que acabou de criar, mas o Git não entende nada de Visua Studiom, .Net, ele não sabe, e temos que marcar o que queremos que seja guardado. Mas antes vamos dizer para ele o que não queremos que ele guarde, por exemplo, dll´s, arquivos de pacotes nuget, etc… ao invés de adicionarmos o arquivo.gitignore através do Visual Studio, vamos baixá-lo de:

Em https://github.com/github/gitignore você baixar arquivos de diversar linguagens, procure por Visual Studio.gitignore ou emhttps://www.gitignore.io/ você faz uma busca por IDE, linguagem, SO´s e é gerado um arquivo. Tanto um como o outro você deve salvá-lo na pasta FabrikamCommunity, acima da pasta src e sem um nome, só ponto e extensão, vamos adicionar esse arquivo ao meu próximo commit, ou seja checkin, ele ficará em um estado como o dos arquivos em Pending Changes do TFVC.

git add .gitignore

Qual o status atual?

image

Um novo arquivo está marcado para entrar no próximo commit mas ainda temos todos os outros arquivos que adicionamos na pasta src emuntracked. Digite:

git add *

O asterisco é um coringa, ao invés de digitar o nome de todos os arquivos eu pedi para adicionar tudo o que estiver abaixo da pasta que estou no momento, vamos ver o que ele adicionou? Preciso dizer qual o comando para verificar o status atual?

git status

image

Agora foi um bocado de coisas… Mas tem algo que eu quero que notem… navegue até:

D:WorkspacesVSALMFabrikamCommunitysrcWebApplication1packages

e liste os arquivos… vários não? Mas eles não estão aparecendo como adicionados quando listados. Acontece que quando eu utilizei o comando add o Git já foi no arquivo .gitignore e verificou as regras desse repositório, e nela dizia que não era para os arquivos dos packages do Nuget entrarem nos commits.

Vamos efetivar essas mudanças? No Git é muito comum fazer pequenos commites atômicos, ou seja, pequenas alterações, mas sem quebrar o código, então deposi de validar que o seu código está compilando, execute:

git commit –m “Criação do website FabrikamCommunit #247”

image

Reparou no #247? Esse é aquele mesmo work item de Product Backlog Item que criamos no HOL, da mesma maneira que colocamos na mensagem no Visual Studio. Se verificarmos o status do repositório, veremos que não existe nada novo, nada está em edição, … Ele está dizendo que estamos na branch master praticamente.

image

Quer ver uma lista dos seus commites?

git log

image

Só um commit, a cadeia de caracteres em amarelo é o hash do commit, ou seja, é o identificador, tal qual o changeset para o checkin.

Vamos enviar essa alteração para o repositório no TFS?

git push origin master

Push irá enviar para origin o branch master, ou seja, vai equalizar o que está na minha branch master com a branch master de origin, que é o servidor do TFS. Isso não é um commit, por que ele já foi feito, é só envio do código.

image

Vá lá no portal e vamos dar uma olhada nos commits que estão lá

image

Igual como fizemos com o Visua Studio! Até mesmo o link do commit com o work item está lá! Legal não? Eu costumo usar o Visual Studio aberto junto com o Console, ao invés de mover o mouse até o Team Explorer, abrir o painel, clicar nos tiles para abrir o que eu quero fazer; dou um Alt+Tab e escrevo no console.

Importante… Se você abrir o painel do Team Explorer vai ver que você pode executar os comando por lá também! Isso por que a IDE reconhece que está usando uma solution em um repositório Git e te permite interagir pelo Team Explorer! Legal não?

Próxima segunda continuamos…

Uma resposta para “Git básico…para quem está vindo do TFVC, ou Source Safe, ou SVN, …”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *