Limpando a Linha do Tempo
Tarefas
O repositório do desafio foi configurado em ~/project/time-travel-git. Execute o seguinte comando para visualizar o histórico inicial de commits:
cd ~/project/time-travel-git
git log --oneline
Você deverá ver os seguintes 4 commits (os hashes dos seus commits serão diferentes):
886c6ad (HEAD -> master) Add project description
3a87b84 Add project codename
6b4cbb9 Fix typo in project name
0d71e5e Start secret project
Sua missão envolve as seguintes tarefas:
- Combinar os dois commits mais antigos ("Start secret project" e "Fix typo in project name") em um único commit com a mensagem "Initialize secret project".
- Alterar o texto do commit "Add project codename" para "Add project codename: Chronos".
- Manter o commit mais recente ("Add project description") como está.
Requisitos
Para completar esta missão com sucesso, siga estes requisitos:
- Todas as operações devem ser realizadas no diretório
~/project/time-travel-git.
- Você deve usar o comando
git rebase -i (rebase interativo) para limpar o histórico de commits.
- Seu histórico final deve ter exatamente 3 commits (em vez dos 4 originais).
- O conteúdo dos arquivos deve permanecer inalterado - você está modificando apenas o histórico de commits.
- Quando o desafio estiver concluído, a execução de
git log --oneline deve mostrar 3 commits com as mensagens corretas.
Dicas
Aqui estão algumas dicas úteis para guiá-lo através do desafio:
-
O rebase interativo permite manipular commits em seu histórico. O formato básico do comando é:
git rebase -i <commit>
onde <commit> é o commit anterior ao primeiro que você deseja modificar. Para modificar desde o primeiríssimo commit, você pode usar:
git rebase -i --root
-
Na tela do rebase interativo, você verá uma lista de commits com ações. As ações comuns são:
pick - usa o commit como está
reword ou r - usa o commit, mas altera sua mensagem
squash or s - combina este commit com o anterior
fixup or f - como o squash, mas descarta a mensagem deste commit
-
Para combinar commits, você pode usar squash ou fixup no segundo commit.
-
Para alterar uma mensagem de commit, use a ação reword.
-
Após configurar seu plano de rebase, salve e feche o editor. O Git o guiará pelo restante do processo, abrindo novas janelas de editor conforme necessário para editar as mensagens de commit.
-
Se você cometer um erro durante o rebase, sempre pode abortá-lo com:
git rebase --abort
e começar de novo.
Exemplo
Após completar o desafio, seu git log --oneline deve ser semelhante a este (com hashes de commit diferentes):
abc1234 Add project description
def5678 Add project codename: Chronos
ghi9101 Initialize secret project