Objetivos pedagógicos:
git merge e git rebase.No fim deste TP, será capaz de:
git merge e git rebase para integrar modificações de branches.merge e rebase.Crie uma pasta de trabalho para este TP:
mkdir git-evaluation-1
cd git-evaluation-1
git initCaptura de ecrã: tire uma captura de ecrã a mostrar a inicialização do repositório (git init).
Criação do ficheiro inicial
Crie um ficheiro chamado fichier1.txt (ficheiro original) e acrescente um commit de base na branch principal main:
echo "Contenu initial dans fichier1" > fichier1.txt
git add fichier1.txt
git commit -m "Initialisation du projet avec fichier1.txt"Renomeie a branch principal para main (se necessário):
git branch -M mainCaptura de ecrã: mostre a adição do ficheiro e o primeiro commit.
Crie as branches branche1 e branche2 a partir de main:
branche1:
git checkout -b branche1main e crie branche2:
git checkout main
git checkout -b branche2Criação das branches de trabalho:
branche-rebase a partir de branche1:
git checkout branche1
git checkout -b branche-rebasebranche-merge a partir de branche2:
git checkout branche2
git checkout -b branche-mergeCaptura de ecrã: mostre a criação das branches com o comando git branch.
branche-rebase e branche-mergeNota: vamos usar ficheiros diferentes (
fichier-2-rebase.txtefichier-2-merge.txt) e efetuar as mesmas modificações para poder comparar os efeitos demergeerebase.
Trabalho em branche-rebase:
Primeiro commit:
git checkout branche-rebase
echo "Modification 1 dans branche-rebase" > fichier-2-rebase.txt
git add fichier-2-rebase.txt
git commit -m "Ajout de fichier-2-rebase.txt avec modification 1"Segundo commit:
echo "Modification 2 dans branche-rebase" >> fichier-2-rebase.txt
git add fichier-2-rebase.txt
git commit -m "Ajout de modification 2 dans fichier-2-rebase.txt"Terceiro commit:
echo "Modification 3 dans branche-rebase" >> fichier-2-rebase.txt
git add fichier-2-rebase.txt
git commit -m "Ajout de modification 3 dans fichier-2-rebase.txt"Trabalho em branche-merge:
Primeiro commit:
git checkout branche-merge
echo "Modification 1 dans branche-merge" > fichier-2-merge.txt
git add fichier-2-merge.txt
git commit -m "Ajout de fichier-2-merge.txt avec modification 1"Segundo commit:
echo "Modification 2 dans branche-merge" >> fichier-2-merge.txt
git add fichier-2-merge.txt
git commit -m "Ajout de modification 2 dans fichier-2-merge.txt"Terceiro commit:
echo "Modification 3 dans branche-merge" >> fichier-2-merge.txt
git add fichier-2-merge.txt
git commit -m "Ajout de modification 3 dans fichier-2-merge.txt"Captura de ecrã: mostre os commits realizados em cada branch com git log.
merge e rebaseRebase de branche-rebase em branche1:
Mude para branche1:
git checkout branche1Rebase branche-rebase em branche1:
git rebase branche-rebaseCaptura de ecrã: use git log --oneline --graph --all para mostrar o histórico linear criado pelo rebase.
Merge de branche-merge em branche2:
Mude para branche2:
git checkout branche2Funda branche-merge em branche2:
git merge branche-merge -m "Fusion de branche-merge dans branche2"Captura de ecrã: use git log --oneline --graph --all para mostrar o histórico com o commit de fusão.
Comparar os históricos:
branche1 (com rebase) e o de branche2 (com merge)?Argumentos para cada método:
rebase para integrar modificações?merge é mais vantajoso?Cenários de aplicação:
merge poderia causar conflitos no histórico, e como rebase poderia resolver esse problema.rebase poderia dificultar o acompanhamento num projeto colaborativo.Para submeter este TP: