DEV Community

Germano Barcelos
Germano Barcelos

Posted on • Edited on

Git? Sistema de Versionamento? O que é isso?

Introdução

Git é um sistema de versionamento que te possibilita controlar as versões de arquivos. Esqueça de criar diretórios nomeando arquivos como: projeto-versão1, projeto-versão2, projeto-versão-final. Com git você não precisa mais controlar manualmente a versão de seus arquivos, ou seja, você terá no diretório a versão que você deseja. 

Com pequenos comandos é possível fazer esse versionamento, apresentarei os principais. Para os mais curiosos a documentação é excepcional e explica tanto em português quanto inglês outras várias funcionalidades do sistema.

Principais Comandos

Antes de começar tenha certeza que tenha o git instalado em seu PC.

Comando: git init - inicia o controle da versão na pasta desejada

Stages

Temos vários estágios no git:

  • Working Directory - Esse é o estágio inicial, quando modificamos o arquivo
  • Staging - O arquivo passa para esse estágio quando o adicionamos ao controle
  • History - O arquivo chega a esse estágio quando salvamos esse arquivo com o controle

git add .

OBS: Existe esse ponto, é um comando que diz que todos os arquivos estão sendo adicionados ao estágio de staging.

O git add, portanto é responsável por passar o arquivo do working directory para o staging.

git add nome_do_arquivo

Passa somente um arquivo.

git commit -m "Mensagem"

OBS:A flag -m é um comando para colocar uma mensagem no seu commit. Se você não usar a flag, abrirá um editor para colocar a mensagem desejada.
Esse comando salva os arquivos que estão no staging no history, ou seja, se não existe nenhum arquivo no estágio de staging, o git commit não salvará nada.

git status

Se por acaso não souber os estágio dos arquivos o git status irá te informar sobre.

Github

Agora imagina em uma empresa vários desenvolvedores trabalhando desse jeito: um precisa fazer atualização em um código e ao mesmo tempo um outro dev está desenvolvendo uma nova feature; e quando eles acabarem, como vão controlar as mudanças sem perder nenhuma linha de código?

Só o Git resolve?

Sim só o git resolve, é um sistema completo. Utilizaremos um outro recurso chamado remote. O remote é um recurso para adicionar um servidor para servir o estágio de history de seu controle de versão. E esse servidor que vamos utilizar é o github. Existe, hoje, vários servidores como o BitBucket e Gitlab, porém o Github é o mais famoso e por isso é importante conhecê-lo para principalmente criar o seu portfólio, colaborar em projeto de código aberto para ser visto por empresas (Github vale como um cartão de apresentação).

Crie o seu user no github. Crie um novo repositório, este será o lugar onde estará o código que está sob versionamento.
É necessário ressaltar que o github serve arquivos somente que estão no estágio de history

git remote add "nome curto" "url"

Adicionando a url de seu repositório

git push -u origin master

Copiando os recursos do estágio "History" para o repositório

Mas até agora só mudamos o estágio de History para o Repositório, não solucionamos o problema.

Onde a mágica acontece:

git pull
Buscamos mudanças de nosso repositório para o nosso controle, ou seja, trazemos os arquivos do github e alteramos no nosso controle.

Com isso conseguimos resolver o problema inicial: quando um desenvolvedor acabar com a alteração do código, o dev que está desenvolvendo a nova feature irá realizar o processo de pull e atualizará o código dele para uma versão mais nova sem problemas e sem preocupação de perder todo o trabalho que ele tinha feito. Não é bonito?

Não perca tempo de usar esse sistema, use com sabedoria!

Existem outros tipos de sistema de controle de versão que possui os mesmos princípios como, por exemplo: SVN e Mercurial.

Sharing is good, and with digital technology, sharing is easy! - Richard Stallman

Top comments (0)