DEV Community

Cover image for Git e GitHub  -  Conceitos e comandos Iniciais
Wanderley Cabral
Wanderley Cabral

Posted on

Git e GitHub  -  Conceitos e comandos Iniciais

Fundamentos do Versionamento de Código e Colaboração em Projetos.

Git e GitHub: Conceitos e Comandos Iniciais


1. Introdução
No desenvolvimento de software, o controle de versão é essencial para gerenciar alterações em projetos, permitindo colaboração eficiente entre equipes e mantendo um histórico de modificações. O Git e o GitHub são ferramentas fundamentais nesse contexto. Enquanto o Git é um sistema de controle de versão distribuído, o GitHub é uma plataforma de hospedagem de repositórios Git com funcionalidades adicionais para colaboração.
Neste artigo, abordaremos os conceitos básicos do Git e GitHub, bem como os principais comandos para iniciar o versionamento de projetos.

2. Conceitos Fundamentais
2.1. Git
O Git é um sistema de controle de versão distribuído (DVCS - Distributed Version Control System), criado por Linus Torvalds em 2005. Ele permite que desenvolvedores rastreiem alterações no código-fonte, revertam para versões anteriores e trabalhem em equipe de forma não linear.
O Git é fácil de aprender e ocupa pouco espaço, com desempenho extremamente rápido. Ele supera ferramentas de SCM como Subversion, CVS, Perforce e ClearCase, com recursos como ramificação local de baixo custo, áreas de preparação convenientes e múltiplos fluxos de trabalho.git
Além de ser distribuido, o Git foi projetado com desempenho, segurança e flexibilidade em mente.

Principais características do Git:

Descentralizado: Cada desenvolvedor possui uma cópia completa do repositório.

Eficiente: Armazena apenas as diferenças entre arquivos (deltas), otimizando espaço.
Branches leves: Facilita a criação e manipulação de ramificações (branches).

Desempenho: As características brutas de desempenho do Git são muito fortes quando comparadas a muitas alternativas. Fazer o commit de novas alterações, branches, mesclagem e comparação de versões anteriores - tudo é otimizado para desempenho. Os algoritmos implementados no Git aproveitam o conhecimento profundo sobre atributos comuns de árvores de arquivos de código-fonte reais, como costumam ser modificados ao longo do tempo e quais são os padrões de acesso.

Segurança: O Git foi projetado com a integridade do código-fonte gerenciado como uma prioridade. O conteúdo dos arquivos, bem como os verdadeiros relacionamentos entre arquivos e diretórios, versões, tags e commits, todos esses objetos no repositório do Git são protegidos com um algoritmo de hash de criptografia seguro chamado SHA1. Isso protege o código e o histórico de alterações contra alterações acidentais e maliciosas e garante que o histórico tenha rastreabilidade total.

Flexibilidade: Um dos principais objetivos de design do Git é a flexibilidade. O Git é flexível em vários aspectos: suporte a vários tipos de fluxos de trabalho de desenvolvimento não lineares, em eficiência em projetos pequenos e grandes e em compatibilidade com muitos sistemas e protocolos existentes.

2.2. GitHub

O GitHub é uma plataforma baseada em nuvem que hospeda repositórios Git, oferecendo funcionalidades adicionais como:

  • Demonstre ou compartilhe seu trabalho.
  • Acompanhe e gerencie alterações no código ao longo do tempo.
  • Permita que outras pessoas revisem o seu código e deem sugestões para melhorá-lo.
  • Colabore em um projeto compartilhado sem se preocupar que suas alterações afetarão o trabalho de seus colaboradores antes que você esteja pronto para integrá-los.

Pull Requests: Solicitações de integração de código.
Issues: Rastreamento de tarefas e bugs.

GitHub Actions: Automação de fluxos de trabalho (CI/CD).
O GitHub não é o único serviço de hospedagem Git (ex.: GitLab, Bitbucket), mas é o mais amplamente utilizado.

3. Comandos Básicos do Git
Para utilizar o Git, é necessário instalá-lo (download oficial) e configurar o usuário:

git config - global user.name "Seu Nome"

git config - global user.email "seu@email.com"

3.1. Inicializando um Repositório
Para começar a versionar um projeto:
git init
Este comando cria um diretório .git que armazena o histórico de versões.

3.2. Verificando o Status do Repositório
git status
Mostra arquivos modificados, adicionados ou não rastreados.

3.3. Adicionando Arquivos ao Staging Area
Antes de confirmar (commit), os arquivos devem ser adicionados à área de preparação:
git add nome_do_arquivo - Adiciona um arquivo específico
git add . - Adiciona todos os arquivos modificados

3.4. Registrando Alterações (Commit)
Um commit salva as alterações no histórico do repositório:
git commit -m "Mensaem descritiva das alterações"

3.5. Conectando a um Repositório Remoto (GitHub)
Para sincronizar com um repositório no GitHub:
git remote add origin https://github.com/usuario/repositorio.git
git push -u origin main - Envia as alterações para o GitHub

3.6. Clonando um Repositório Existente
Para baixar um projeto do GitHub:
git clone https://github.com/usuario/repositorio.git

3.7. Atualizando o Repositório Local
Para buscar alterações do repositório remoto:
git pull origin main

4. Fluxo de Trabalho Básico
Um fluxo comum de trabalho com Git/GitHub segue estas etapas:

  • Clonar o repositório (git clone).
  • Criar uma branch para novas funcionalidades (git checkout -b nova-branch).
  • Modificar os arquivos e adicionar ao staging (git add).
  • Commitar as alterações (git commit -m "mensagem").
  • Enviar para o repositório remoto (git push origin nova-branch).
  • Abrir um Pull Request no GitHub para revisão e merge.

5. Conclusão 🚧
O Git e o GitHub são ferramentas indispensáveis para desenvolvedores, proporcionando controle de versão eficiente e facilitando a colaboração em projetos. Dominar os comandos básicos apresentados neste artigo é o primeiro passo para um fluxo de trabalho organizado e produtivo.
Para aprofundar-se no tema, recomenda-se explorar recursos como branching, merging, resolução de conflitos e integração contínua (CI/CD).


Referências: 📗
CHACON, S.; STRAUB, B. Pro Git. 2ª ed. Apress, 2014.

Documentação oficial do Git:
GitHub Guides
Atlassian

Este artigo fornece uma base introdutória ao Git e GitHub, permitindo que desenvolvedores iniciantes comecem a utilizar essas ferramentas com confiança.

Bons estudos!📗

Top comments (0)