> For the complete documentation index, see [llms.txt](https://elidianaandrade.gitbook.io/learning-quests/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elidianaandrade.gitbook.io/learning-quests/git-and-github/inventario/pergaminho-do-controle-temporal-de-codigos.md).

# Pergaminho do Controle Temporal de Códigos

*Item Raro • Pergaminho Mágico • Requer Sintonia com Desenvolvedor*

*📜 Este antigo pergaminho contém conhecimentos ancestrais sobre a manipulação do tempo e do espaço no reino do código. Runas brilham sutilmente quando abertas sob a luz dos monitores.*

### ✨ Encantamentos Fundamentais

| Runa                          | Poder Místico                                                                                                                                    |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Versionamento de Código       | Processo que controla e registra todas as alterações feitas no código de um projeto ao longo do tempo.                                           |
| Sistema de Controle de Versão | Sistema que mantém um registro detalhado de cada mudança nos arquivos.                                                                           |
| Git                           | Sistema criado por Linus Torvalds que registra alterações como "fotografias" do projeto ao longo do tempo.                                       |
| GitHub                        | Plataforma para hospedagem de código-fonte onde desenvolvedores hospedam projetos, colaboram e compartilham conhecimento usando o Git como base. |

### 🪄 Feitiços Básicos

| Invocação                | Efeito                                                                                                                        |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| Repository (Repositório) | Pasta onde o Git monitora todas as mudanças, contendo o código atual e todo seu histórico de alterações.                      |
| Clone                    | Baixa uma cópia completa do repositório para seu computador.                                                                  |
| Commit                   | Uma "fotografia" do seu código em determinado momento, com uma mensagem descrevendo o que você mudou.                         |
| Push                     | Envia seus commits locais para o repositório remoto, compartilhando suas alterações com o time.                               |
| Pull                     | Atualiza seu código local com as novidades que outros desenvolvedores enviaram ao repositório remoto.                         |
| Branch (Ramificação)     | Um caminho paralelo de desenvolvimento, permitindo experimentar sem quebrar o código principal. Como um universo alternativo! |
| Working Directory        | Seu espaço de trabalho atual, onde você edita os arquivos antes de "fotografá-los" com um commit.                             |
| Staging Area             | Sala de espera onde você seleciona quais mudanças entrarão no próximo commit, permitindo controle granular.                   |
| Checkout                 | Comando mais antigo e multifuncional. Utilizado para mudar de branch, criar novas branches e restaurar arquivos.              |
| Switch                   | Focado na troca e criação de branches. Permite "viajar" entre diferentes branches do seu código.                              |
| Restore                  | Restaura arquivos para o estado anterior, seja desfazendo mudanças ou removendo-os da staging area.                           |
| Merge                    | Une alterações de uma branch com outra.                                                                                       |

### 💫 Magias Avançadas

| Conjuração        | Manifestação                                                                                                        |
| ----------------- | ------------------------------------------------------------------------------------------------------------------- |
| Fork              | Sua cópia pessoal de um repositório alheio, permitindo brincar e experimentar sem afetar o projeto original.        |
| Pull Request (PR) | Uma solicitação para que o dono do projeto original aceite suas melhorias após você testá-las em seu fork.          |
| Rebase            | Reorganiza seus commits para criar um histórico mais limpo e linear, como reescrever um rascunho antes de entregar. |
| Cherry-pick       | Seleciona um commit específico de uma branch e aplica em outra.                                                     |
| Stash             | Guarda temporariamente suas alterações não-finalizadas para trabalhar em outra coisa urgente.                       |
| Tag               | Marca pontos importantes no histórico, geralmente versões oficiais (v1.0, v2.0).                                    |
| HEAD              | O ponteiro que mostra onde você está no histórico de commits. Sua "localização atual" no mapa do projeto.           |
| Remote            | Repositório hospedado no servidor que serve como ponto central de colaboração entre desenvolvedores.                |
| Upstream          | O repositório original do qual você fez um fork. A fonte da qual você quer manter-se atualizado.                    |
| Origin            | Apelido padrão para o repositório remoto de onde você clonou seu projeto local.                                     |

### 🏰 Artefatos do Universo GitHub

| Relíquia     | Propriedades Místicas                                                                                           |
| ------------ | --------------------------------------------------------------------------------------------------------------- |
| Issues       | Sistema de tickets para rastrear bugs, melhorias ou tarefas.                                                    |
| Actions      | Robozinhos que automatizam tarefas como testes e deploy quando você faz alterações.                             |
| Wiki         | Biblioteca de documentação colaborativa do projeto, perfeita para tutoriais e guias.                            |
| GitHub Pages | Hospedagem gratuita de sites diretamente do seu repositório.                                                    |
| Gist         | Mini-repositórios para compartilhar pequenos trechos de código ou anotações rápidas.                            |
| Dependabot   | Seu segurança digital que monitora e atualiza dependências, mantendo seu código seguro contra vulnerabilidades. |
| Releases     | Pacotes oficiais de versões estáveis do seu software, prontos para download pelos usuários.                     |
| Projects     | Quadros Kanban integrados para gerenciar tarefas e acompanhar o progresso do seu projeto.                       |
| Discussions  | Fórum comunitário para conversas, dúvidas e brainstorming sobre o projeto.                                      |

### ⚔️ Estratégias de Batalha Codificada

| Tática                  | Efeito de Campo                                                                                                                |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Gitflow                 | Receita estruturada de branches para organizar o desenvolvimento, com caminhos específicos para features, hotfixes e releases. |
| Feature Branch Workflow | Cada nova funcionalidade ganha sua própria branch, mantendo o desenvolvimento organizado por contexto.                         |
| Conventional Commits    | Padrão para escrever mensagens de commit que facilita a geração automática de changelogs e versionamento semântico.            |
| Squash                  | Técnica para combinar vários commits pequenos em um único commit coeso antes de integrar ao projeto principal.                 |
| Rebase vs. Merge        | Duas filosofias diferentes para integrar código: reescrever a história (rebase) ou preservar o histórico completo (merge).     |

### ❇️ Magias de Resolução de Conflitos

| Feitiço de Proteção   | Efeito Restaurador                                                                                                       |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Conflito              | Quando duas pessoas editam a mesma linha de código de formas diferentes e o Git não consegue decidir qual versão manter. |
| Resolução de Conflito | Processo de analisar as versões conflitantes e decidir como combiná-las corretamente.                                    |

*📜 Texto no verso do pergaminho:* *"Aquele que dominar estas runas terá o poder de viajar pelas linhas temporais do código, reescrever a história de seus projetos e colaborar com outros magos desenvolvedores. Use este conhecimento com sabedoria, e que seus commits jamais sejam perdidos nas sombras do esquecimento."*

*+5 de Inteligência*\
*+10 de Colaboração*\
*Resistência a Bugs*\
*Imunidade a Perdas de Código*
