https://medium.com/mindorks/understanding-git-merge-git-rebase-88e2afd42671
Στο Git, τα ιστορικά commits διαχειρίζονται διαφορετικά από τις εντολές git rebase και git merge, κάτι που επηρεάζει τον τρόπο με τον οποίο τα commits εμφανίζονται στο ιστορικό.
git merge :
git merge, το Git συνδυάζει τους δύο κλάδους διατηρώντας το ιστορικό και των δύο, δημιουργώντας ένα ειδικό commit συγχώνευσης. Αυτό σημαίνει ότι όλα τα commits και των δύο κλάδων είναι ορατά στο ιστορικό.git rebase :
git rebase, τα commits του τρέχοντος κλάδου «ξαναεφαρμόζονται» στον κλάδο-στόχο, κάτι που δημιουργεί νέα commits που αντιστοιχούν στα παλιά, αλλά με νέα hash (αναγνωριστικά commit). Αυτό ξαναγράφει το ιστορικό ώστε να δίνει την εντύπωση ότι τα commits έγιναν απευθείας στον κλάδο-στόχο.git merge: Διατηρεί το πλήρες ιστορικό commits και των δύο κλάδων, συμπεριλαμβανομένων των σημείων απόκλισης και συγχώνευσης.git rebase: Ξαναγράφει το ιστορικό εξαλείφοντας τα commits απόκλισης, δημιουργώντας γραμμικό ιστορικό χωρίς ρητό ίχνος του πότε αποκλίνανε οι κλάδοι.Είναι πραγματικά σημαντικό να κατανοήσετε τις βασικές διαφορές μεταξύ Git Merge και Git Rebase αν θέλετε να είστε εξαιρετικός διαχειριστής ελέγχου εκδόσεων! Το Git Merge είναι ιδανικό για να διατηρήσετε το ιστορικό και των δύο κλάδων και να εξασφαλίσετε ότι όλα είναι ασφαλή. Το Git Rebase, από την άλλη, είναι τέλειο για καθαρό και γραμμικό ιστορικό commits. Ωστόσο, όπως με όλα, υπάρχουν σημεία προσοχής, ειδικά όταν εργάζεστε σε δημόσιους κλάδους. Η τήρηση του χρυσού κανόνα του rebase μπορεί να σας βοηθήσει να αποφύγετε δύσκολες συγκρούσεις αργότερα. 📌 Όταν αποφασίζετε ποιο να χρησιμοποιήσετε, σκεφτείτε απλώς πώς εργάζεται η ομάδα σας και ποια ορατότητα θέλετε να δώσετε στους κλάδους σας!