Tutorial iOS – Utilizando controle de versão GIT local no XCode
Seja desenvolvendo sozinho ou em time se você não usa controle de versão, deveria!
Quantas vezes já não se deparou com situações que você tinha uma determinada função em seu código funcionando e devido alguma atualização ela parou de funcionar?! Pois é, utilizando controle de versão é possível salvar seu código a cada nova alteração, sendo possível recuperar uma versão anterior caso a atual esteja com problemas.
Começando um projeto com Controle de Versão
Você deve criar um novo projeto, conforme já ensinamos aqui anteriormente.
Porém, antes de salvar o arquivo, certifique-se que o campo “Create git repository on My Mac” esteja marcado no momento de selecionar a pasta onde irá salvar.
Neste momento, o XCode irá criar um repositório GIT vazio e vai usar a base de arquivos do seu projeto como seu primeiro commit.
Todos os sistemas de controle de versão, incluindo o Git, armazenam seus dados em um repositório para que possa gerenciar suas versões de projeto e manter o controle de alterações em todo o ciclo de desenvolvimento. Então pense em um repositório como um banco de dados para versões.
Podemos acompanhar o histórico de modificações no projeto da seguinte forma, vá até o menu Source Control em seguida History, conforme indicado a seguir.
Você poderá visualizar os arquivos que foram alterados desde o ultimo Commiti.
Se você clicar para exibir os arquivos alterados será possível acompanhar o antes e o depois de cada arquivo, de forma bem organizada e detalhada.
Agora vamos experimentar fazer algumas alterações no código, por exemplo, adicionar um NSLog no arquivo ViewController.m na função ViewDidLoad
Repare que uma “Badge” com a letra M apareceu ao lado do nome do arquivo que você alterou no menu a esquerda do XCode.
A letra M significa que o arquivo foi modificado e está diferente da ultima versão “comitada” no controle de versão. Antes de realizar o Commit vamos fazer uma pequena modificação na interface do aplicativo, no arquivo Main_iPhone.storyboard. Podemos acrescentar um botão ou um texto, tanto faz. Precisamos apenas fazer alguma modificação e ao final da modificação espera-se que o arquivo da storyboard também apresente uma “badge” com a letra M.
Fazendo um commit
Fazer um commit é fácil, basta ir em Source Control -> Commit uma tela comparando as mudanças realizadas será exibida, similar a image a baixo:
O código apresentado a esquerda corresponde as informações antigas, já existentes no controle de versão. Já as informações da direita são as modificações realizadas e que serão armazenadas no controle de versão.
Antes de realizar o commit é necessário que uma mensagem seja escrita, geralmente coloca-se uma informação referente ao que foi alterado no código, para facilitar na hora de visualizar as versões antigas do código.
Após realizar o commit, verifique que os arquivos no menu do lado esquerdo do seu projeto não apresentam mais a “badge” com a letra M.
Se verificarmos o histórico de commit teremos agora duas alterações, a primeira que foi gerado quando criamos o projeto e essa nova alteração.
Branch
Um outro recurso interessante do controle de versão é a possibilidade de criar branch, ou seja, ramos.
Em outras palavras, um ramo é uma versão do seu código com alguma função nova que ainda está em teste, ou ainda está sendo implementada e por isso não deve ser adicionada ao ramo principal (Branch Master) a seguir iremos criar um novo branch, simulando que ele tenha uma nova função.
Primeiro passo é criar uma nova classe, irei criar uma classe de nome MapaModel com a subclasse NSObject. Ao criar a nova classe repare que a “Badge” com a letra A apareceu na frente dos arquivos criados e significa que é um novo arquivo e ainda não foi realizado o commit.
Para criar um novo ramo, basta seguir os passos da imagem a seguir:
Escolha a opção New Branch em seguida defina o nome do novo ramo. Ao finalizar a criação do novo ramo, o próximo commit será automaticamente direcionado para ele. Por fim, basta fazer o commit propriamente dito e ele será direcionado para o novo ramo.
Comparando Versões
Depois de ter commitado vária versões em seu projeto, é muito fácil comparar e rastrear as modificações feitas no código. Comparar versões é muito útil quando um código recém adicionado não funciona como esperado, sendo fundamental retornar a um código mais antigo.
Para comparar duas versões basta ir em View > Version Editor > Show Version Editor, ou clicar no botão Version Editor, existente na tabbar, conforme mostrado a seguir:
O editor irá se divider em duas partes. Inicialmente, ambos os painéis de edição (esquerda e direita) mostram a versão atual do arquivo selecionado. Para mudar qualquer um dos dois painéis para uma versão previamente comprometido, vá até a barra de ferramentas abaixo do painel e clique no último botão, a imagem do relógio:
Imediatamente, todas as alterações que correspondem ao período que foi selecionado serão exibidas na tela. Normalmente, o painel da esquerda é usada para a versão atual do arquivo, enquanto o da direita é usado para acessar uma revisão anterior. As áreas azuis, indicando os códigos modificado, e que faz rastreamento de adições de código de forma realmente fácil e objetiva. Então, vá em frente e selecione um período de edição e observe as diferenças exibidas entre os dois painéis.
Como podemos observar, entre os dois painéis do editor existem as etiquetas redondas vimos pela primeira vez na janela de confirmação. Clicando na seta para baixo existente em qualquer uma delas, a opção de descartar as respectivas alterações é exibida. Se você clicar, Xcode irá pedir a sua confirmação e, se concordar, o código selecionado será descartada para sempre, sem qualquer chance de recuperá-lo. Portanto, tome cuidado para não descartar qualquer pedaço de código, mesmo que acidentalmente.
Além da forma apresentada acima, há mais um que você pode usar para voltar para revisões anteriores. Se você olhar atentamente para a barra de ferramentas abaixo dos dois painéis, no meio dela, há um botão com um relógio e uma seta.
Se você clicar nesse relógio com uma seta, a coluna entre os dois painéis fica alterada e os rótulos são substituídos por uma série de marcas de tempo em que foram feitos todos os commits anteriores. Note que nem todos eles representam um commit real, o número real dessas formas retangulares arredondadas correspondentes às versões anteriores, depende da quantidade de commits.
No próximo tutorial sobre GIT iremos abordar assuntos como: Criar novo Branch, fazer merge de Branchs e aprender a descartar mudanças. Até a próxima!
Boa noite pessoal.
Bastante interessante o recurso GIT para controle de versão local.
Pergunta:
1 – com o Xcode é possível realizar o controle de versão online? (permitindo + que 1 programador utilize os mesmos códigos e realizem alterações e façam o commit, tipo Tortoise SVN).
1.1 – No caso o item 1 não sendo possível. É permitido compartilhamento do projeto em rede local? com a equipe?
2 – não encontrei o próximo tutorial citado acima, onde: “Criar novo Branch, fazer merge de Branchs e aprender a descartar mudanças. ”
Excelente Post!!! parabéns e até.