O que é Git

Antes de falar sobre Git é preciso explicar o que é um VCS, ou Version Control System(Sistema de Versões System). Um VCS é um sistema de controle de versão que permite gerenciar mudanças em arquivos. Um dos softwares do tipo VCS mais utilizado no mundo de desenvolvimento de software antes do Git foi o Subversion(ainda é bastante utilizado), que é um sistema de controle de versão centralizado.

O Git é um software do tipo VCS lançado no ano de 2005 pelo também criador do Linux, Linus Torvalds. Na época a equipe de desenvolvimento do Linux utilizava um VCS chamado BitKeeper, porém, por não concordar com as recentes mudanças na licença dessa ferramenta e por não encontrar um outro VCS que suprisse as necessidades do projeto, Linus decidiu trabalhar na criação do seu próprio sistema de controle de versão, o Git.

Como enfatizado em sua documentação, o Git é bastante diferente conceitualmente de seus concorrentes. Uma das principais diferenças é o fato do Git ser um VCS distribuído. Essa característica torna a ferramenta mais performática, já que os recursos e o histórico de mudanças ficam sempre disponível para os desenvolvedores, mesmo quando não há conexão com a internet.

Comandos Básicos

git clone <url-do-repositorio.git>        # clone do projeto
git add <arquivo-novo-a-ser-adicionado>  # adiciona novos arquivos

git reset <arquivo>                      # desfaz o git add
git commit -m "o que foi alterado"       # salva o estado do projeto naquele momento
git push origin <branch>                 # envia o arquivos commitados para o repositório remoto

git pull origin <branch>                 # atualiza o projeto com as mudanças do repositório remoto
git merge <branch>                       # traz as mudanças da branch informada para a branch atual, fazendo uma fusão
git log                                  # mostra o histórico de commits
git checkout <outra-branch>              # muda de uma branch para outra
git checkout -b <nova-branch>            # cria nova branch e muda para a mesma

git checkout -- <arquivo-alterado>       # desfaz alteração
git remote -v                            # mostra o repositório atual configurado
git remote add origin <url-do-repositorio.git> # define a url do repositório remoto inicialmente
git remote set-url origin <url-do-repositorio.git> # altera a url do repositório remoto
git reset HEAD~1                         # desfaz último commit
git reset --hard HEAD~1                  # desfaz último commit e as alterações nos arquivos

Conclusão

O Git é uma ferramenta essencial no mercado de desenvolvimento de software. Dominá-lo é fundamental para uma carreira de sucesso na área de programação. Obviamente, ela não é a única, mas ela faz parte de um ecossistema básico de tecnologias que TODO programador PRECISA saber. No curso “Aprenda a Programar Programando” da Mesa Virtual nós damos a importância e o foco devido a essa ferramenta.