Git diff

Το Git είναι ένα δωρεάν και ανοιχτού κώδικα κατανεμημένο σύστημα ελέγχου εκδόσεων που έχει σχεδιαστεί για να χειρίζεται τα πάντα, από μικρά έως πολύ μεγάλα έργα με ταχύτητα και αποτελεσματικότητα. Το Git βασίζεται στη βάση της κατανεμημένης ανάπτυξης λογισμικού όπου περισσότεροι από ένας προγραμματιστές μπορεί να έχουν πρόσβαση στον πηγαίο κώδικα μιας συγκεκριμένης εφαρμογής και μπορούν να τροποποιήσουν αλλαγές σε αυτόν που μπορεί να είναι ορατές από άλλους προγραμματιστές.

Έτσι, το τι git diff σας δείχνει πραγματικά όλες τις αλλαγές που έγιναν στο αρχείο αφού κάνετε μια δέσμευση, για παράδειγμα: – ένα αρχείο say at.txt τροποποιείται εδώ μετά την εκτέλεση μιας δέσμευσης και εδώ μπορούμε να δούμε ότι υπάρχει διαφορά στο αρχείο μετά από ένα διαπράττω.

Χρήση git diff

Απεικόνιση: Αλλαγές μεταξύ δύο δεσμεύσεων όπως φαίνεται παρακάτω ως εξής:

Τώρα, αν θέλετε να δείτε τις αλλαγές μεταξύ των δύο δεσμεύσεων, χρησιμοποιήστε την ακόλουθη εντολή: git diff commit-id1 commit-id 2  εδώ μπορούμε να δούμε ότι στο πρώτο μας Commit Hello Geeks for Geeks; έρχεται και στη δεύτερη δέσμευσή μας Hello Geeks for Geeks ; έρχεται εδώ.

Εδώ μπορώ να χρησιμοποιήσω την εντολή git diff commit-id-1 commitid-2

Εμφανίζει τη διαφορά για σταδιακά αρχεία

Τώρα λοιπόν, αν θέλουμε να δούμε τις αλλαγές μεταξύ των προηγούμενων commit και των τρεχόντων σταδιακών αρχείων, μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή:
git diff –σταδιακή. Επίσης, υπάρχει μια ακόμη εντολή που είναι git diff –cached την οποία μπορούμε να χρησιμοποιήσουμε για την ίδια περίπτωση χρήσης. Επίσης, μπορούμε να χρησιμοποιήσουμε
git status  -v  που είναι ακριβώς σαν συνώνυμο της εντολής –staded one.

Using git diff –staged

Χρήση git diff για σύγκριση κλάδων

Για να δούμε τις αλλαγές μεταξύ διαφορετικών κλάδων θα χρησιμοποιήσουμε την εντολή git diff name_of _the_branch1 name_of_the_branch2. Τώρα, αν θέλουμε να δούμε όλες τις αλλαγές στο branch_2 για αυτό, θα χρησιμοποιήσουμε την εντολή git diff branch1_name branch2_name.

Συγκρίνοντας τους δύο κλάδους χρησιμοποιώντας την παραπάνω εντολή

Εδώ μπορούμε να δούμε ότι όταν η εντολή είναι git diff branch1_name brach2_name εμφανίζει όλες τις αλλαγές στο branch_name 2 και αυτό με πράσινο χρώμα που σημαίνει ότι αυτές οι αλλαγές τοποθετούνται και πραγματοποιούνται σε αυτόν τον κλάδο και στη δεύτερη εντολή που είναι ακριβώς το αντίστροφο της πρώτης εντολής git diff branch2_name branch1_name εμφανίζει όλες τις αλλαγές με κόκκινο χρώμα που σημαίνει ότι αυτές οι αλλαγές δεν παρακολουθούνται από
git στο branch1 αυτό είναι η αλλαγή μεταξύ των 2 κλάδων. Έτσι, τώρα, αν δημιουργήσω ένα αρχείο στο branch1, το προσθέσω στην περιοχή σταδιοποίησης και μετά το δεσμεύσω, τότε αυτές οι αλλαγές παρακολουθούνται στον κλάδο1, όχι στον κλάδο2. Έτσι τώρα, αν χρησιμοποιήσω την εντολή για να εμφανίσω όλες τις αλλαγές στον κλάδο 2, τότε θα εμφανίσει την αλλαγή που έγινε στον κύριο κλάδο με κόκκινο χρώμα και η αλλαγή που έγινε μόνο στον κλάδο2 θα είναι μόνο με πράσινο χρώμα. Με παρόμοιο τρόπο, αν γράψουμε git diff branch2_name branch1_name τότε θα εμφανιστούν όλες οι αλλαγές που γίνονται στον κλάδο1 με πράσινο χρώμα και οι αλλαγές που γίνονται στον κλάδο2 με κόκκινο χρώμα.

Εμφάνιση και των αλλαγών με σκηνικό και μη σκηνικό

Για να δούμε όλες τις σταδιακές και μη σταδιακές αλλαγές στο git χρησιμοποιούμε την ακόλουθη εντολή: git diff HEAD

Χρήση της εντολής git diff HEAD

Μπορούμε επίσης να χρησιμοποιήσουμε μια ακόμη εντολή για την επίτευξη αυτής της συγκεκριμένης κατάστασης χρήσης git case -vv δηλώνει στην πραγματικότητα ποιες αλλαγές έχουν ρυθμιστεί για δέσμευση και ποιες όχι.

Χρήση git status -vv

Εδώ, όλες οι αλλαγές που βρίσκονται κάτω από το σύμβολο είναι οι αλλαγές που δεν έχουν ρυθμιστεί για δέσμευση.

Εμφάνιση διαφορών για ένα συγκεκριμένο αρχείο ή κατάλογο

git diff file_name

Εμφανίζει όλες τις αλλαγές μεταξύ της προηγούμενης δέσμευσης του καθορισμένου αρχείου και της τοπικά τροποποιημένης έκδοσης που δεν έχει ακόμη αναβαθμιστεί. Όλες οι αλλαγές που βρίσκονται κάτω από το σύμβολο – δεν είναι σταδιακά.

Χρησιμοποιώντας το git diff file_name

Λειτουργεί επίσης για καταλόγους και εμφανίζει τις αλλαγές μεταξύ της προηγούμενης δέσμευσης όλων των αρχείων στον καθορισμένο κατάλογο και του τοπικά τροποποιημένου
εκδόσεις αυτών των αρχείων που δεν έχουν σταδιακά. Εδώ όλες αυτές οι αλλαγές που έρχονται σε πράσινο χρώμα είναι οι αλλαγές που δεν είναι σταδιακά.

Χρησιμοποιώντας το git diff folder_name

Για να δείξετε τη διαφορά μεταξύ κάποιας έκδοσης ενός αρχείου σε μια δεδομένη δέσμευση και της τοπικής έκδοσης HEAD, μπορείτε να καθορίσετε το αναγνωριστικό δέσμευσης αυτής της δέσμευσης και να τη συγκρίνετε με την τοπική έκδοση κεφαλίδας που θέλετε. Η τοπική έκδοση κεφαλιού είναι βασικά η πιο πρόσφατη αλλαγή που έγινε στο αρχείο.

Χρησιμοποιώντας το git diff commit_id file_name

Η αλλαγή που έρχεται στο πράσινο χρώμα είναι η τοπική έκδοση κεφαλιού που είναι η παρούσα κατάσταση του αρχείου που είναι η πιο πρόσφατη αλλαγή που έγινε στο αρχείο. Τώρα, αν θέλετε να δείτε την έκδοση μεταξύ δύο ξεχωριστών δεσμεύσεων: git diff commit-id-1 commit-id-2 file_name.

Χρησιμοποιώντας την εντολή git diff commit_id1 commit_id2 file_name

Εδώ μπορούμε να δούμε την έκδοση ανάμεσα σε δύο ξεχωριστά commit σε πράσινο χρώμα για τα αντίστοιχα commit id. Για να δείξουμε τη διαφορά μεταξύ της έκδοσης που καθορίζεται από τον κατακερματισμό  a1e7045 και της πιο πρόσφατης δέσμευσης στον κλάδο για τον κατάλογο, μπορούμε να χρησιμοποιήσουμε αυτήν την εντολή:

git diff commit-id branch_name directory_name/

Χρησιμοποιώντας την εντολή git diff commit-id branch_name folder_name

Εμφάνιση διαφορών μεταξύ της τρέχουσας και της τελευταίας έκδοσης

git diff HEAD^ HEAD

Αυτή η εντολή δείχνει τις αλλαγές μεταξύ της προηγούμενης και της τρέχουσας δέσμευσης.

Χρήση git diff HEAD^ HEAD

Διαφορά συμβατή με ενημερωμένη έκδοση κώδικα: Μερικές φορές χρειαζόμαστε απλώς μια διαφορά για να την εφαρμόσουμε χρησιμοποιώντας μια ενημέρωση κώδικα. Άρα η εντολή για αυτό θα ήταν:

git diff --no-prefix > some_file.patch

Αυτό θα δημιουργήσει ένα patch_file εξαιτίας αυτού του συμβόλου > και αυτό το αρχείο ενημέρωσης κώδικα θα περιέχει αλλαγές του αρχείου, όπως αλλαγές που είναι σταδιακά και που δεν είναι σταδιακά. Γενικά, μας δείχνει τις αλλαγές γραμμής οι γραμμές σε πράσινο χρώμα είναι οι αλλαγές που έγιναν πρόσφατα. Έτσι λειτουργεί ακριβώς το ίδιο ακριβώς όπως το git diff.

Χρησιμοποιώντας git diff –no-prefix  > file_name.patch

Διαφορά μεταξύ δύο Commit ή κλάδου

Για να δούμε τη διαφορά μεταξύ των δύο κλάδων χρησιμοποιούμε την ακόλουθη εντολή:

git diff branch1_name branch2_name

Χρησιμοποιώντας git diff  branch1_name branch2_name

Για να δείτε τη διαφορά μεταξύ δύο commit id χρησιμοποιείται η ακόλουθη εντολή:

git diff commit-id-1 commit-id-2

Χρησιμοποιώντας command git diff commit-id-1 commit-id-2

Για να δείτε τη διαφορά με τον τρέχοντα κλάδο

git diff name_of_branch

Χρησιμοποιώντας git diff branch_name

Για να δείτε τη διαφορά με το commit_id

git diff commit id

Χρησιμοποιώντας git diff commit_id 

Για να δείτε τη σύνοψη των αλλαγών

git diff --stat branch or we can write git diff -stat commit_id

Χρησιμοποιώντας την εντολή git diff -stat branch για να δείτε τη σύνοψη των αλλαγών στον κλάδο

Για να δείτε αρχεία που άλλαξαν μετά από μια συγκεκριμένη δέσμευση

git diff --name-only commit-id

Χρησιμοποιώντας την εντολή git diff –name-only commit-id

Για να προβάλετε αρχεία που είναι διαφορετικά από έναν κλάδο

git diff --name-only branch_name

Χρησιμοποιώντας git diff –name-only branch_name

Για να προβάλετε αρχεία σε έναν φάκελο που άλλαξαν μετά από μια δέσμευση

git diff --name-only commit-id folder-path

Χρησιμοποιώντας την εντολή git diff –όνομα-όνομα commit-id folder-path

Leave a Reply

Your email address will not be published. Required fields are marked *