Programação · ferramentas · controlo de versões
O que é o Git?
Se escreves código, vais encontrar o Git logo no primeiro dia. É a ferramenta que quase todos os projetos de software usam para acompanhar as alterações, e a base por baixo do GitHub, do GitLab e do fluxo de trabalho de desenvolvimento moderno. Este guia explica o que é o Git, o punhado de conceitos que o tornam evidente, porque é importante e em que difere do GitHub.
A definição curta
O Git é um sistema de controlo de versões distribuído: regista o histórico de alterações de um conjunto de ficheiros para que possas revê-lo, ramificar, fundir, colaborar e voltar atrás. Criado por Linus Torvalds em 2005 para gerir o kernel do Linux, é hoje o padrão de facto. „Distribuído“ significa que cada cópia do projeto carrega o seu histórico completo — podes trabalhar, fazer commit e consultar o histórico totalmente offline.
Os conceitos fundamentais
- Repositório (repo) — a pasta do projeto mais todo o seu histórico, guardados num diretório oculto
.git. - Commit — um instantâneo guardado dos teus ficheiros num dado momento, com uma mensagem que descreve a alteração. O histórico é uma cadeia de commits.
- Ramo (branch) — um apontador móvel que te permite desenvolver uma funcionalidade de forma isolada sem perturbar a linha principal (geralmente
main). - Merge (fusão) — combinar as alterações de um ramo noutro.
- Remote (remoto) — uma cópia partilhada do repositório alojada noutro lugar (por ex. no GitHub) para a qual fazes
pushe da qual fazespull.
O fluxo de trabalho do dia a dia
O ciclo que a maioria dos programadores executa dezenas de vezes por dia:
git clone <url> # copy a repository locally
# ...edit files...
git add . # stage the changes you want to save
git commit -m "Add login form" # save a snapshot with a message
git push # send your commits to the shared remote Para trabalhar em algo novo sem partir a linha principal, ramificas: git checkout -b my-feature, fazes os commits aí e depois executas um git merge (muitas vezes via uma pull request) de volta para main. Para obter o trabalho dos outros, executas git pull.
Porque é que o Git é importante
- Histórico e desfazer — cada alteração é registada, por isso podes ver quem alterou o quê, quando e porquê, e voltar atrás num erro.
- Colaboração — muitas pessoas podem trabalhar em paralelo no mesmo projeto em ramos diferentes, e depois fundir em segurança.
- Experimentação segura — ramifica, experimenta algo, descarta-o se falhar — a linha principal mantém-se intacta.
- Está em todo o lado — o open source, as empresas, as pipelines de CI/CD e o deployment pressupõem todos o Git.
Git vs GitHub
São confundidos a toda a hora. O Git é a ferramenta de controlo de versões que corre na tua máquina. O GitHub (como o GitLab ou o Bitbucket) é um serviço de alojamento que guarda repositórios Git online e acrescenta funcionalidades de colaboração — pull requests, issues, controlo de acessos, CI. Podes usar o Git sem qualquer conta GitHub; o GitHub é um lugar popular para colocar um remote Git, não o Git em si.
A curva de aprendizagem honesta
O Git é poderoso, e o seu conjunto de comandos pode parecer desconcertante no início — os merges podem entrar em conflito, e alguns comandos podem reescrever o histórico de formas que surpreendem os principiantes. A boa notícia: 90 % do trabalho diário usa apenas clone, add, commit, push, pull e branch. Domina estes e aprende o resto (rebase, stash, reset) quando realmente precisares.
FAQ
O Git é a mesma coisa que o GitHub? Não. O Git é o software de controlo de versões no teu computador; o GitHub é um serviço online que aloja repositórios Git e acrescenta ferramentas de colaboração. O Git funciona sem o GitHub.
O que é um commit? Um instantâneo guardado do teu projeto num dado momento, com uma mensagem que descreve o que mudou. O histórico de um projeto é uma sequência de commits.
É preciso usar a linha de comandos? Não — os editores (VS Code) e os clientes gráficos envolvem o Git, e a maioria dos IDE integra-o — mas a linha de comandos é universal e vale a pena aprendê-la, já que cada tutorial e cada sistema de CI a falam.
O que significa „distribuído“? Cada clone de um repositório Git contém o histórico completo, por isso podes fazer commit, ramificar e percorrer o histórico offline. Não há uma única cópia central da qual dependas para trabalhar.
O Git acompanha o código; os algoritmos e as API são aquilo que esse código exprime. Explora outras explicações claras no nosso índice de guias.