in DevOps, Eng. de Software

Tutorial Git com GitLab

Que o Git é o versionador de códigos mais utilizado na atualidade isso ninguém discute, mas o interessante é que ultimamente a dobradinha Git+Gitlab vem se tornando um padrão da indústria de software, isso se deve mais a versatilidade e adoção da cultura DevOps do GitLab, portanto, nesse tutorial farei uma introdução às principais funcionalidades do GitLab, continue comigo e boa leitura!

Neste tutorial estou usando a versão EE do GitLab, é uma versão auto gerenciada, ou seja, você instala nas suas dependências e se responsabiliza por tudo, mas a forma de utilização é exatamente a mesma, garanto que não haverá diferença nenhuma da versão que você encontra disponibilizada na Cloud.

Login GitLab

Login GitLab

O trabalho começa com a criação de um Project, no momento da criação do projeto é criado também um repositório, mas tem um detalhe, para que o branch master seja criado inicialmente é preciso já ser feita a criação e o commit do arquivo README.md.

Vamos lá, com fé é de mãos dadas, juntinhos…

Após o login você provavelmente verá a tela a seguir, nesta tela, na parte superior você tem a barra de menus, no centro da tela você tem entre outras opções a Create a project, nosso trabalho começará a partir deste ponto.

Dashboard GitLab

Dashboard GitLab

Clique na opção Create a project e siga os passos do assistente, basicamente você precisará informar o nome do projeto, que inclusive será o nome do repositório Git, escreva também uma descrição, é importante, deixa as coisas mais objetivas, observe o Visibility level, é aqui que você define como será a visibilidade do repositório, por padrão é Private, ou seja, privado, só para quem você der permissão que terá acesso.

Observe a opção Initialize repository with a README, lembra do que falei no início do post? Marque esta opção para que o GitLab crie o repositório e ao mesmo tempo inicialize o branch master. Pronto! Feito isso você está com o setup do seu projeto configurado, agora o que precisamos fazer é adicionar nosso código fonte no repositório.

Criação de um projeto novo

Criação de um projeto novo

Agora precisaremos inicializar um repositório local, na sua máquina, entre no diretório do seu projeto e digite o comando a seguir:

git init

Pronto, repositório inicializado, claro que antes disso é necessário que você tenha instalado o Git no seu sistema operacional, a instalação dele foge do escopo deste post, mas tenho certeza absoluta que você encontrará boas referências na internet sobre esse processo, que de antemão posso garantir que é extremamente simples.

Uma coisa importante a se fazer após a inicialização do repositório é criar o arquivo .gitignore e adicioná-lo antes do fonte do seu software, este arquivo, como o nome sugere serve para que possamos informar ao Git o que não queremos que seja rastreado por ele, assim não haverá registros de mudanças e ele não irão subir para o repositório no GitLab.

nano .gitignore

Adicione os itens a serem ignorados, um por linha, no caso de um projeto Django, geralmente o que se ignora são os arquivos da pasta media, os diretórios do ambiente virtual (caso estejam juntos com o diretório do projeto), arquivos .pyo, .pyc, o diretório __pycache__ enfim, para cada projeto você terá que ignorá de fato o que não é código fonte ou o que não for importante ou que for por exemplo, configurações do seu ambiente de desenvolvimento. Pressione Control + O e em seguida Enter para gravar e depois Control + X para sair do editor de texto nano.

Ok, o próximo é adicionar esse arquivo ao Git e fazer o commit do mesmo. Para isso, digite os comandos abaixo:

git add .gitignore

git commit -m "Ignorando o que não é do projeto."

Vamos lá, o primeiro comando serve para você adicionar o arquivo .gitignore ao repositório, claro que por enquanto, no repositório local, o segundo comando você confirma essa adição e descreve do que se trata, essa mensagem sempre deve ser algo que realmente faça sentido a todos que trabalham no projeto.

Feito os passos anteriores agora podemos adicionar todo o nosso código fonte também no repositório, os comandos necessários pra isso são exatamente os mesmos, claro que na mensagem agora deve ser informada algo pertinente, veja como ficará os comandos.

git add .

git commit -m "Primeiro commit."

Veja que no primeiro comando agora informamos um coringa, o "." neste caso significa tudo, ou seja, tudo que não consta na lista do arquivo .gitignore, todo o seu código fonte, a mensagem também mudou, observe.

O que precisa ser feito ainda é adicionar a URL do repositório que o GitLab gerou e em seguida o push, ou seja, subir para o repositório dentro do GitLab tudo que você adicionou e comitou no repositório local.

 

Repositório criado

Repositório criado

Observe a tela acima e perceba que logo abaixo o nome do projeto, você tem a URL do repositório, ao lado da URL você tem um botão de cópia, clique nele a URL será colocada na sua área de transferência.

Perceba também que a forma de conexão com o servidor será via HTTP, a opção mais recomendada é através do protocolo SSH, por questões de segurança e conveniência, mas isso é assunto para um novo post! 😉

Com a URL copiada voltamos ao terminal com os comandos a seguir:

git remote add origin http://sua-url-copiada-do-gitlab-aqui/repositório-criado

Para colar a URL copiada no terminal clique com o botão direito do mouse e em seguida em Paste/Colar, confirme com Enter.

Estamos quase acabando, “guente” mais um pouco… 😉

Como nós criamos o repositório com o arquivo README, antes de fazermos o push, é preciso fazer um pull, ou seja, primeiro baixamos o que tem no repositório do GitLab para depois subirmos o que temos no repositório local.

git pull origin master

Muito provavelmente abrirá pra você o editor de texto padrão do terminal do seu sistema operacional pedindo para informar uma mensagem de merge, merge é o nome da ação de juntar tudo, tudo o que você tem no repositório local com o que tem no repositório remoto, se for o nano já sabe, basta pressionar o Control + X se quiser sair sem digitar nenhuma mensagem, pois por padrão ele adiciona uma referente ao merge.

git push origin master

Com o comando acima você envia tudo que foi comitado anteriormente ao repositório remoto, se tudo der certo, basta ir ao GitLab para você visualizar as mudanças, dê um refresh na página e daí verá as mudanças.

Bom, chegamos ao fim, isso é tudo, o que tenho ainda são algumas considerações importantes, principalmente para os que estão iniciando com o Git+GitLab. Vamos a elas.

Todos esses passos só são necessário a primeira vez, da segunda vez em diante, o fluxo de trabalho do Git se resume em git add ., git commit -m "Sua mensagem", git pull origin master e git push origin master. Sempre tenha o hábito de antes de fazer o push, fazer um pull, com isso você baixa as mudanças do repositório remoto e já verifica se tem algum conflito não resolvido automaticamente.

Outra consideração importante é, por padrão, no GitLab o branch master é protegido, isso significa que somente o criador poderá fazer push diretamente nele, esta é uma das coisas que me fez migrar para o GitLab, isso é extremamente útil, pois evita de erros serem cometidos, no entanto, para que a coisa possa fluir melhor, de maneira mais organizada, seria preciso a criação de novos branchs (isso também é assunto para outro post…), mas como isso demanda um certo nível de amadurecimento no uso principalmente do Git, o que aconselho é você desproteger o branch master, assim todos poderão fazer push diretamente nele.

Para desproteger o branch vá em: Settings (menu da esquerda) -> Repository -> Protected Branchs -> Expand -> Unprotect, confirme clicando em Ok e pronto, todo mundo poderá agora fazer push diretamente no branch master.

E por último, mas não menos importante, adicione os demais desenvolvedores ao projeto, basta ir em: Settings (menu da esquerda) -> Members -> Select members to invite, não esqueça de definir a permissão dele em Choose a role permission.

Bom, sei que foi um post longo, mas foi necessário, enxuguei o máximo que pude!!!

Um forte abraço e que Deus nos proteja e ilumine nossos caminhos!

Não deixe de participar, deixe seu comentário e vamos trocar aquela ideia!!! Fui…

Deixe seu comentário

Comment

    • Show de bola Flávio! Muito obrigado mesmo. Tenho certeza que vai ajudar bastante a todos os futuros leitores. 😉