Skip to content

Instantly share code, notes, and snippets.

@rodrigo-galba
Last active November 29, 2025 12:20
Show Gist options
  • Select an option

  • Save rodrigo-galba/e1ffb1234588784e08242d55d0de26be to your computer and use it in GitHub Desktop.

Select an option

Save rodrigo-galba/e1ffb1234588784e08242d55d0de26be to your computer and use it in GitHub Desktop.
trabalho_final_git

📂 Disciplina: Gestão de Configuração

🎓 Trabalho Final (Invidual ou Dupla)

  • Mantenha seu repositório público
  • Prazo limite: Final da ultima aula, às 12:00 PM

✅ Requisitos:

  • Git Bash
  • Gitk (ou equivalente)
  • Conta no GitHub

📌 Instruções para Trabalho

Este trabalho deve ser realizado em dupla, mas somente um repositório deverá ser enviado como entrega oficial.

Regras:

  1. A dupla deve escolher apenas um repositório forkado para executar todas as etapas do trabalho.

    • Não envie dois repositórios.
    • Ambos os alunos devem trabalhar no mesmo fork.
  2. No arquivo README.md do projeto, devem constar obrigatoriamente:

    • Nome completo dos dois alunos
    • Usuários GitHub
    • Numeros das matrículas
    • Seguir o exemplo:
Equipe:
Joao Alves, matricula 123456
Jose Silva, matricula 456789
  1. Apenas um integrante fará a Pull Request final para o repositório original, mas:

    • O nome dos dois alunos deve estar listado na descrição.
    • Ambos serão avaliados com base no mesmo repositório.
  2. Toda a organização (pastas, commits, README) deve representar o trabalho da dupla.


📚 Fontes Permitidas

Durante a realização deste trabalho, somente as fontes abaixo estão autorizadas:

  1. Documentação oficial do Git
    https://git-scm.com/doc

  2. E-book Pro Git (versão oficial disponível gratuitamente)
    https://git-scm.com/book

  3. Material didático disponibilizado no sistema online da disciplina
    (Material do AVA)


❗ Fontes proibidas

Não é permitido utilizar:

  • Ferramentas baseadas em IA/LLMs (como ChatGPT, Copilot, Gemini, Claude, etc.)
  • Pesquisas gerais na internet
  • Tutoriais externos, blogs, vídeos, artigos ou documentação não listada acima

📆 Fases do Laboratório

Fase 1: Preparação Inicial

Tarefa 1

Crie uma conta no GitHub, caso ainda não possua.

Tarefa 2

Realize um fork do repositório: https://github.com/rodrigo-galba-unifor/gestao-configuracao-trabalho-final

Tarefa 3

Crie uma Issue no repositório principal com as seguintes informações:

  • Título: Trabalho do aluno/a <seu-nome>
  • Descrição: Trabalho final de gestão de configuração. Número da sua matrícula.
  • Link do GitHub: https://github.com/<seu-usuario>

Tarefa 4

Clone localmente o repositório que você forkou e crie um branch separado a partir do main com o nome dev. E mude para o branch dev.

Tarefa 5

Crie uma pasta com o seu nome de usuário no GitHub. Todas as tarefas abaixo devem ocorrer somente dentro desse diretório, exceto quando indicado o contrário. Adicione um arquivo README.md dentro dessa pasta e realize commit do arquivo.


Fase 2: Commits e Boas Práticas

Tarefa 6

Crie um arquivo .env com cinco variáveis de ambiente fictícias (chave e valor). Além disso, crie um arquivo .env-template contendo as mesmas chaves, mas com os valores em branco ou genéricos. O arquivo .env-template deve ser versionado. Ignore o arquivo .env.

Exemplo:

API_URL=https://exemplo.com
PORT=3000
DEBUG=true
USER=admin
TOKEN=123456

Tarefa 7

Crie um arquivo credentials e garanta que ele seja ignorado pelo Git. Realize commit das alterações se necessário.

Tarefa 8

No README.md, descreva o uso das variáveis de ambiente criadas. Realize commit das alterações.

Tarefa 9

Adicione uma seção ao README.md informando a última alteração do log feita. Realize commit das alterações.

Tarefa 10

Abra o gitk e capture um screenshot com todo o histórico de commits. Se houver muitos commits, tire mais de um screenshot. Faça commit da(s) imagem(ns).

Tarefa 11

No arquivo alunos.md (na raiz do projeto), adicione uma linha com o seu usuário GitHub/Nome do Aluno. Realize commit das alterações.

Em seguida, delete o arquivo alunos.md do repositório e realize novo commit com essa remoção.


Fase 3: Branches, Tags e Versionamento

Tarefa 12

Publique o branch dev no GitHub.

Tarefa 13

Crie uma tag semântica no branch dev (ex: v1.0.0-dev) e submeta para o GitHub.

Tarefa 14

A partir do branch dev, crie o branch stage.

Tarefa 15

Apague completamente o último commit no branch stage. Realize commit das alterações se necessário.

Tarefa 16

Publique o branch stage.

Tarefa 17

Crie uma tag semântica no branch stage (ex: v1.0.0-stage) e envie para o GitHub.

Tarefa 18

Crie um branch prod baseado em main, ignorando quaisquer alterações pendentes.

Tarefa 19

Realize um merge do tipo squash com todos os commits feitos no stage na data atual. Faça commit do merge squash em prod. Garanta que o branch prod possui somente o commit de merge-squash

Tarefa 20

Publique o branch prod no GitHub.

Tarefa 21

Crie uma tag semântica no prod (ex: v1.0.0) e submeta para o GitHub.


Fase 4: Pull Requests

Tarefa 22

Crie uma Pull Request no seu repositório: do branch prod para o branch main. Na descrição, resuma as alterações feitas.

Tarefa 23

Crie uma tag semântica no branch main no seu repositório (ex: v1.0.0-release) e submeta para o GitHub.

Tarefa 24

Crie uma release com a tag criada no seu repositório. Resuma as principais mudanças incluídas.

Tarefa 25

Crie uma Pull Request do seu repositório para o repositório principal original. Na descrição, informe:

  • Link para cada branch criado (dev, prod, stage)
  • Link para cada tag criada
  • Link da release

Fase 5: Correcao emergencial

Tarefa 26

Crie um branch hotfix baseado no branch prod.

Tarefa 27

Insira uma pequena correção no repositório.
Exemplo sugerido: criar um novo arquivo hotfix.md contendo os dados do último commit realizado no prod.

Tarefa 28

Crie uma tag semântica para o hotfix seguindo padrão de patch:
v1.0.1-hotfix

Tarefa 29

Realize o merge do branch hotfix para os branches:

  • prod
  • main

Tarefa 30

Envie a tag v1.0.1-hotfix para o GitHub.

Tarefa 31

Gere uma nova release no GitHub utilizando a tag do hotfix e inclua uma descrição mencionando a correção aplicada.


Fase 6: Recuperando dados

Tarefa 32

Delete o branch stage do repositório local.

Tarefa 33

No branch main, liste todos os branches existentes no repositório local e registre essa lista em um arquivo chamado branches.md.
Realize commit do arquivo.

Tarefa 34

Recupere o branch stage que foi deletado anteriormente.

Após a recuperação, repita o passo 33: atualize o arquivo branches.md listando novamente todos os branches existentes e realize um novo commit.

Tarefa 35

Submeta as alteracoes do branch main para o remoto.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment