Artigo original: An introduction to Git: what it is, and how to use it
(Tradução realizada em português europeu)
O Git é um sistema de controlo de versões, distribuído e de código aberto. Ora, isto são muitas palavras para definir o Git.
Vamos decompor esta definição complexa e explicar cada um dos conceitos:
- Sistema de controlo: isto significa que o Git é, basicamente, um tracker de conteúdo. Portanto, o Git pode ser usado para guardar conteúdo – É usado, principalmente, para armazenar código, devido às outras funcionalidades que disponibiliza.
- Sistema de controlo de versões: O código que é guardado no Git está em constante mutação à medida que novo código é adicionado. Além disso, muitos programadores podem adicionar código em paralelo. O sistema de controlo de versões, ajuda a gerir tudo isto, mantendo um histórico das alterações que foram realizadas. Adicionalmente, o Git disponibiliza funcionalidades como branches e merges, que explicaremos mais tarde.
- Sistema distribuído de controlo de versões : O Git tem um repositório remoto que está alojado em um servidor e um repositório local que está alojado no computador de cada programador. Isto significa que o código não está apenas guardado num servidor central, mas também existe uma cópia integral em todos os computadores dos programadores. Assim, o Git é um sistema distribuído de controlo de versões porque está presente no computador de cada programador. Explicaremos o conceito de repositórios remotos e locais, posteriormente, neste artigo.
Por que precisamos de um Sistema de Controlo de Versões como o Git
Os projetos na vida real implicam a colaboração em paralelo de vários programadores. Por isso, é necessário um sistema de controlo de versões, como o Git, para garantir que não existem conflitos entre o código desenvolvido por diferentes pessoas.
Adicionalmente, os requisitos destes projectos são alterados com muita frequência. Um sistema de controlo de versões permite que os programadores possam reverter alterações e voltar a uma versão anterior do código.
Finalmente, por vezes, existem projetos que estão a decorrer em paralelo e que partilham o mesmo código base. Nestes casos, o conceito de criação de branches do Git é muito importante.
Agora, vamos começar a usar o Git.
Em vez de abordarmos os conceitos todos de uma só vez, vamos explicar cada um deles, através de um exemplo, para um entendimento mais fácil.
Download do Git
Esta ligação tem as instruções para instalação do Git em diversos sistemas operativos:
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
Verifica que o Git está instalado, usando a seguinte instrução através da linha de comandos:
git --version
Criar o repositório local do Git
No teu computador, cria uma pasta para o teu projecto. Vamos dar-lhe o nome simple-git-demo
.
Entra na tua pasta do projecto e adiciona um repositório local do Git através dos seguintes comandos:
cd simple-git-demo
git init
O comandogit init
adiciona um repositório local do Git ao teu projecto.
Agora, vamos adicionar algum código simples.
Agora vamos adicionar algum código
Cria um ficheiro com o nome demo.txt
na pasta de projecto e adiciona-lhe o seguinte texto:
Initial Content
Aqui, vamos usar texto simples em vez de código, uma vez que o foco do artigo é o Sistema Git e não uma linguagem de programação específica.
Staging e committing do código.
Committing é o processo através do qual o código é adicionado ao repositório local. Antes de ser possível realizar o commit do código, ele tem de estar na área de staging. A área de staging existe para registar todas as alterações realizadas aos ficheiros e que serão posteriormente alvo de commit.
Qualquer ficheiro que não seja adicionado à área de staging, não poderá ser alvo de commit. Isso permite que o programador tenha controlo sobre quais os ficheiros que necessitam de ser alvo de commit.
Staging
Usa o seguinte commando para realizar o staging do ficheiro:
git add demo.txt
Caso pretendas realizar o staging de vários ficheiros, podes usar:
git add file1 file2 file3
Se quiseres adicionar, todos os ficheiros dentro da pasta de projecto, na área de staging, podes usar o seguinte comando:
git add .
Usa este comando com cuidado, porque ele adiciona, à área de staging, todos os ficheiros e pastas existentes no teu projecto.
Committing
Para realizar o commit do ficheiro, usa o seguinte comando:
git commit -m "Initial Commit"
"Initial Commit" é a mensagem de commit inicial. Deves sempre criar uma mensagem de commit que seja relevante e indicativa das alterações ao código que foram realizadas em cada commit.
Git Status e Git Log
Agora, vamos modificar o ficheiro demo.txt
e adicionar o seguinte texto:
Initial Content Adding more Content
Status
Usa o comando git status
para descobrires informação sobre que ficheiros foram modificados e quais estão na área de staging – é também apresentada informação adicional, que pode ser ignorada para já.
Usa o seguinte comando para veres o status:
git status
O status mostra que o ficheiro demo.txt
foi modificado e ainda não está na área de staging.
Agora, vamos adicionar o ficheiro demo.txt
para a área de staging e fazer o commit usando os seguintes comandos:
git add demo.txt git commit -m "demo.txt file is modified"
Log
Usa o comandogit log
para obteres uma impressão de todos os commits realizados até ao momento.
O comando usado é: git log
O log mostra quem foi o autor, a data e a mensagem de cada commit
Branches
Até agora, não criamos branches no Git. Por definição, o Git realiza os commits na branch master.
O que é uma branch
Uma branch não é mais do que um ponteiro para o último commit no repositório Git. Portanto, actualmente, a nossa master branch é um ponteiro para o segundo commit “demo.txt file is modified”
.
Por que são necessárias várias branches?
As branches são necessárias para suportar vários desenvolvimentos em paralelo. No diagrama apresentado de seguida, temos uma representação do funcionamento das branches.

Inicialmente, o commit 1 e o commit 2 são realizados na branch master. Depois do commit 2, é criada uma branch com o nome "Test". O commit 3 e o commit 4 são adicionados à branch Test.
Ao mesmo tempo, outros commits, commit 3 e commit 4 são adicionados à branch master. Aqui, conseguimos ver que, após o commit 2, estão a ser realizados dois desenvolvimentos em paralelo, em duas branches separadas.
A branch Test e a branch Master divergiram neste ponto e têm códigos diferentes – o código da branch Test pode ser mesclado (do inglês, merged) com a branch Master usando o comando git merge
. Posteriormente, falaremos desse processo.
Criar uma branch no repositório local.
Cria uma branch chamada test usando o seguinte comando:
git branch test
Este comando cria a branch test
.
Ainda estamos no contexto da branch master. Para mudarmos para a branch test
, usamos o seguinte comando:
git checkout test
Agora estamos na branch test
.
Podes obter uma lista de todas as branches existentes no repositório local usando o seguinte comando:
git branch
Executa alguns commits na nova branch
Modifica demo.txt
adicionando o seguinte código:
Initial Content Adding more Content Adding some Content from test Branch
Agora executa o stage e o commit com os seguintes comandos:
git add demo.txt git commit -m "Test Branch Commit"
Este commit foi realizado na branch Test. Agora, a branch Test está avançada em relação à branch Master em 1 commit — porque a branch Test também possui 2 commits da branch master.
Podes verificar o histórico de commits da branch Test com o comando:
git log
Merging
Neste momento, a branch Test está avançada em 1 commit em relação à branch Master. Vamos supor que agora precisamos que todo o código da branch Test seja colocado na branch Master. Esta é a situação em que o comando git merge
é muito útil.
Para conseguirmos fazer o merge do código da branch test na branch master, basta seguir os seguintes passos:
Primeiro, voltar à branch master:
git checkout master
Depois, executar o comando merge
:
git merge test
Depois de executar esses 2 comandos, o merge deverá estar concluído com sucesso. Neste exemplo, não existem conflitos.
Em projectos reais, contudo, é possível que existam conflitos quando se executa um merge. Para resolver estes conflitos, é necessária alguma experiência, algo que adquirirás à medida que a tua familiarização e que o tempo de trabalho com o Git aumente.
Agora, corre o comando git log
e vais reparar que a branch master também possui 3 commits.
O repositório remoto do Git
Até agora, temos estado a trabalhar apenas no repositório local. Cada programador trabalhará no seu repositório local, mas, eventualmente, terão a necessidade de fazer push do seu código para o repositório remoto. Assim que o código estiver no repositório remoto, outros programadores serão capazes de ver e modificar esse código.

GitHub
Aqui, vamos passar a usar o GitHub para o repositório remoto.
Navega para o link: https://github.com/ e cria uma conta.
Depois do registo na homepage do GitHub, clica em Start a Project para criares um repositório Git. Dá um nome ao repositório e clica em "Create Repository"
Dá um nome como git-blog-demo
.
Isto vai criar um repositório remoto no Github e, quando abrires o repositório, será aberta uma página idêntica à apresentada abaixo:

O URL do repositório é o texto destacado em cima.
https://github.com/aditya-sridhar/git-blog-demo.git
Para apontares o teu repositório local para o repositório remoto, usa este comando:
git remote add origin [url do repositório]
Git Push
Para fazermos push de todo o código do repositório local para o repositório remoto, usamos o seguinte comando:
git push -u origin master
Este comando realiza o push (actualização) do código da branch master no repositório local para a branch master do repositório remoto.
Comandos adicionais
Git Pull
git pull
é usado para fazer pull das últimas alterações no repositório remoto para o teu repositório local. O código do repositório remoto é constantemente atualizado por vários programadores. Isso justifica a necessidade do comando git pull
:
git pull origin master
Git Clone
git clone
é usado para clonar um repositório remoto, já existente, para o teu computador. O comando a usar é:
git clone [repository url]
Parabéns
Agora que conheces os conceitos básicos necessários para usar o Git, aventura-te e explora mais!
Em breve, publicarei um novo artigo sobre conceitos um pouco mais avançados do Git. Mantém-te atento!
Sobre o autor
O autor adora tecnologia e segue atentamente todos os avanços. Ele também gosta de ajudar os outros com o seu conhecimento na área tecnológica.
Conecte-se ao autor em sua conta do LinkedIn
Também é possível seguir o autor no Twitter