Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
15.01.2025

Estrutura do repositório Git

Estrutura do repositório mestre Git no seu VPS AlexHost

Por que usar Git na AlexHost? Git é a pedra angular do controle de versão, e hospedar seus repositórios em um VPS AlexHost lhe dá controle total com acesso root, armazenamento NVMe ultrarrápido e ambientes seguros protegidos contra DDoS. Quer seja um programador a solo ou esteja a gerir uma equipa, o VPS flexível da AlexHost garante que os seus fluxos de trabalho Git funcionam sem problemas. Este guia explica a estrutura de um repositório Git e como aproveitá-lo no seu servidor AlexHost.


1. Diretório de trabalho

O diretório de trabalho é o local onde residem os arquivos reais do seu projeto. Quando clona um repositório Git, obtém uma cópia de todos os ficheiros rastreados, que são colocados no seu diretório de trabalho. Esta é a área onde edita ativamente os ficheiros, faz alterações e adiciona novos conteúdos

  • Ficheiros modificados: Qualquer ficheiro que edite no seu diretório de trabalho será considerado modificado até que o prepare ou reponha as alterações.
  • Ficheiros não monitorizados: Os ficheiros que ainda não são controlados pelo Git aparecerão no diretório de trabalho como não controlados até serem preparados e submetidos.

2. Área de preparação (Índice)

A área de preparação (também designada por índice) é um local intermédio onde as alterações aos ficheiros são recolhidas antes de serem submetidas a commit no repositório. Você adiciona arquivos ou alterações à área de preparação usando o comando git add. As alterações na área de preparação farão parte do próximo commit

  • Adicionar alterações à área de preparação
    git add <arquivo>
  • Visualizar a área de preparação: Você pode ver o que está na área de preparação usando git status.

3. Diretório Git (pasta .git)

O diretório Git, armazenado na pasta .git, é o coração de qualquer repositório Git. Ele contém todas as informações essenciais sobre o histórico, a configuração e o estado atual do seu projeto. Este diretório é criado automaticamente quando você inicializa ou clona um repositório Git

Principais componentes do diretório .git:

  • HEAD: Um arquivo que aponta para o commit atual no seu branch.
  • Ramos: Contém informações sobre os branches no repositório.
  • Objetos: Armazena todos os objetos como commits, blobs (dados de arquivos) e árvores (estrutura de diretórios).
  • Refs: Contém referências a commits, incluindo cabeças (branches), tags e branches de rastreamento remoto.
  • Config: O arquivo de configuração para o seu repositório local, onde configurações como remotos ou informações do usuário são armazenadas.
  • Logs: Armazena os logs de todas as atividades, como commits, checkouts e rebases.
  • Ganchos: Scripts personalizados que podem acionar ações antes ou depois de determinados eventos do Git (por exemplo, commit, push).

4. Histórico de commits

Cada commit é um instantâneo do seu repositório em um ponto específico no tempo. Um commit inclui alterações nos ficheiros juntamente com metadados como a mensagem do commit, o autor e o carimbo de data/hora. Os commits formam o histórico do seu projeto

  • Os commits são armazenados no diretório .git/objects.
  • Cada commit aponta para o commit anterior (exceto o primeiro), formando uma cadeia ligada que pode ser visualizada como o histórico do projeto.
git log # Ver o histórico de commits

5. Ramos

Um ramo é um ponteiro para um commit específico, permitindo-lhe trabalhar em diferentes versões do seu projeto em simultâneo. Por padrão, o Git começa com um branch chamado main (ou master em versões mais antigas)

  • Ponteiro de ramo: Os ramos são simplesmente ponteiros para um commit. Criar um novo ramo significa criar um ponteiro para o commit atual, permitindo que você faça novos commits nesse ramo sem afetar outros ramos.
git branch <branch-name> # Cria um novo branch git checkout <branch-name> # Muda para um branch existente
  • HEAD: O ponteiro HEAD no Git indica o ramo ou commit atual em que você está trabalhando. Ele geralmente aponta para o último commit no seu ramo atual.

6. Tags

As tags são referências a pontos específicos no seu histórico do Git, geralmente usadas para marcar versões de lançamento (por exemplo, v1.0, v2.0). Ao contrário dos branches, as tags não são atualizadas com novos commits

  • Tags leves: São ponteiros simples para um commit, semelhantes a um branch.
  • Tags anotadas: Contêm metadados adicionais, como o nome do marcador, a data e uma mensagem de marcação.
git tag v1.0 # Criar uma tag leve git tag -a v1.0 -m “Versão 1.0” # Criar uma tag anotada

7. Remotos

Um remote no Git é uma referência a uma cópia do seu repositório que está alojada noutro local, muitas vezes em plataformas como o GitHub, GitLab ou Bitbucket. Os remotos são usados para colaboração, permitindo-lhe fazer push de alterações ou pull de alterações de outras cópias do repositório

  • Origem: Por padrão, o repositório remoto principal é chamado de origem.
git remote add origin <url> # Adiciona um repositório remoto git fetch origin # Busca alterações do repositório remoto git push origin main # Faz push de alterações para o branch principal do repositório remoto

8. Objetos no Git

O diretório de objetos do Git (.git/objects) contém os quatro tipos de objetos principais que compõem o histórico do repositório

  • Blob: Armazena o conteúdo real de um arquivo.
  • Árvore: Representa um diretório, mapeando nomes de arquivos para objetos blob e subdiretórios (outros objetos de árvore).
  • Commit: Armazena metadados sobre cada alteração (autor, data, mensagem) e aponta para um objeto de árvore.
  • Tag: Aponta para um commit e armazena informações sobre o tagger e a mensagem (no caso de tags anotadas).

9. Ganchos

O Git permite-lhe definir scripts personalizados (hooks) que podem ser acionados em várias fases do fluxo de trabalho do Git. Estes scripts podem ser executados automaticamente após ou antes de eventos como o commit, o push ou a fusão. Os hooks podem reforçar a qualidade do código, executar testes ou acionar pipelines de CI/CD. Os hooks são armazenados no diretório .git/hooks/

  • Gancho de pré-compilação: É executado antes que um commit seja criado.
  • Hook pós-compromisso: É executado depois que um commit é criado.

10. Registos

O Git armazena registos de todas as acções no repositório, tais como commits, checkouts, merges e reversões. Esses logs ajudam na depuração e revisão das ações tomadas no repositório

  • Git Reflog: Mantém um registo de todas as alterações ao ponteiro HEAD, permitindo-lhe recuperar de acções como um branch reset.
git reflog # Veja o reflog para ver as acções recentes

Resumo da estrutura do repositório Git

  • Diretório de trabalho: Contém ficheiros e diretórios no seu estado atual.
  • Área de preparação (Índice): Onde as alterações são preparadas antes de fazer o commit.
  • Diretório Git (.git): Mantém os dados principais, incluindo objetos, configuração e logs.
  • Commits: Registo de alterações com metadados, formando o histórico do projeto.
  • Ramos: Apontadores para commits específicos que permitem o desenvolvimento paralelo.
  • Tags: Referências nomeadas a commits específicos, geralmente para marcar releases.
  • Remotos: Referências a repositórios alojados noutro local para colaboração.
  • Objectos: Os componentes principais do Git, incluindo blobs, árvores e commits.

Ao compreender esta estrutura, pode navegar e gerir o seu repositório Git de forma eficaz, garantindo uma colaboração e um controlo de versões sem problemas ao longo do desenvolvimento do seu projeto.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills