Παιδαγωγικοί στόχοι:
git merge και git rebase.Στο τέλος αυτού του TP, θα είστε σε θέση να:
git merge και git rebase για να ενσωματώνετε τροποποιήσεις κλάδων.merge και rebase.Δημιουργήστε έναν φάκελο εργασίας για αυτό το TP:
mkdir git-evaluation-1
cd git-evaluation-1
git initΣτιγμιότυπο οθόνης: Τραβήξτε ένα στιγμιότυπο που δείχνει την αρχικοποίηση του αποθετηρίου (git init).
Δημιουργία του αρχικού αρχείου
Δημιουργήστε ένα αρχείο με όνομα fichier1.txt (αρχικό αρχείο) και προσθέστε ένα βασικό commit στον κύριο κλάδο main:
echo "Contenu initial dans fichier1" > fichier1.txt
git add fichier1.txt
git commit -m "Initialisation du projet avec fichier1.txt"Μετονομάστε τον κύριο κλάδο σε main (αν χρειάζεται):
git branch -M mainΣτιγμιότυπο οθόνης: Δείξτε την προσθήκη του αρχείου και το πρώτο commit.
Δημιουργήστε τους κλάδους branche1 και branche2 από το main:
branche1:
git checkout -b branche1main και δημιουργήστε το branche2:
git checkout main
git checkout -b branche2Δημιουργία των κλάδων εργασίας:
branche-rebase από το branche1:
git checkout branche1
git checkout -b branche-rebasebranche-merge από το branche2:
git checkout branche2
git checkout -b branche-mergeΣτιγμιότυπο οθόνης: Δείξτε τη δημιουργία των κλάδων με την εντολή git branch.
branche-rebase και branche-mergeΣημείωση: Θα χρησιμοποιήσουμε διαφορετικά αρχεία (
fichier-2-rebase.txtκαιfichier-2-merge.txt) και θα κάνουμε τις ίδιες τροποποιήσεις ώστε να συγκρίνουμε τα αποτελέσματα τουmergeκαι τουrebase.
Εργασία στο branche-rebase:
Πρώτο 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"Δεύτερο 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"Τρίτο 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"Εργασία στο branche-merge:
Πρώτο 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"Δεύτερο 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"Τρίτο 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"Στιγμιότυπο οθόνης: Δείξτε τα commits που έγιναν σε κάθε κλάδο με git log.
merge και rebaseRebase του branche-rebase στο branche1:
Μεταβείτε στο branche1:
git checkout branche1Κάντε rebase το branche-rebase στο branche1:
git rebase branche-rebaseΣτιγμιότυπο οθόνης: Χρησιμοποιήστε git log --oneline --graph --all για να δείξετε το γραμμικό ιστορικό που δημιουργήθηκε από το rebase.
Merge του branche-merge στο branche2:
Μεταβείτε στο branche2:
git checkout branche2Συγχωνεύστε το branche-merge στο branche2:
git merge branche-merge -m "Fusion de branche-merge dans branche2"Στιγμιότυπο οθόνης: Χρησιμοποιήστε git log --oneline --graph --all για να δείξετε το ιστορικό με το commit συγχώνευσης.
Σύγκριση των ιστορικών:
branche1 (με rebase) και εκείνου του branche2 (με merge);Επιχειρήματα για κάθε μέθοδο:
rebase για να ενσωματώσετε τροποποιήσεις;merge είναι πιο επωφελές;Σενάρια εφαρμογής:
merge θα μπορούσε να προκαλέσει συγκρούσεις στο ιστορικό, και πώς το rebase θα μπορούσε να λύσει αυτό το πρόβλημα.rebase θα μπορούσε να δημιουργήσει δυσκολίες παρακολούθησης σε ένα συνεργατικό έργο.Για να υποβάλετε αυτό το TP: