Αλλαγή Name Και Email Σε Όλα Τα Git Commits

Υπάρχουν περιπτώσεις που θα χρειαστεί να μετατρέψετε ένα private repository σε public. Αν έχετε κάνει commits με το όνομά σας και το προσωπικό σας email, ίσως να μη θέλετε αυτές οι πληροφορίες να εμφανίζονται στο log του repository που θα γίνει public.

Για να αλλάξετε όλα τα ονόματα και emails θα πρέπει να ακολουθήσετε τα παρακάτω βήματα.

Ορίζουμε τις τιμές για name και email που θέλουμε πλέον να εμφανίζονται δημόσια:

Τώρα τσεκάρουμε ποια είναι τα name και email στο git config με τις εξής εντολές:

Δημιουργήστε ένα αρχείο με το όνομα git-change-author-details.sh και βάλτε στο αρχείο αυτό τον παρακάτω κώδικα. Αλλάξτε τις τιμές για τα OLD_EMAIL, CORRECT_NAME και CORRECT_EMAIL.

Τρέχουμε το αρχείο με την εντολή bash git-change-author-details.sh και θα αλλάξουν τα στοιχεία για τον author του κάθε commit.

Με την εντολή git log βλέπουμε πλέον ότι το όνομα και το email έχει αλλάξει σε όλα τα git commits και τώρα μπορείτε να κάνετε git push στο public repository σας.

 

Σημείωση: Σε περίπτωση που χρησιμοποιείτε Github, καλό θα ήταν να δείτε τις ρυθμίσεις στη σελίδα github.com/settings/emails και να «τικάρετε» τις επιλογές «Keep my email addresses private» και «Block command line pushes that expose my email»

Διαγραφή Git Index Μετά Από Αλλαγές Στο .gitignore

Όταν σε ένα git repository κάνουμε αλλαγές στο .gitignore αρχείο, τότε το git «αγνοεί» τις αλλαγές που αφορούν αρχεία τα οποία έχουμε ήδη κάνει ‘git add’ σε κάποιο παλαιότερο commit. Στην περίπτωση αυτή ακολουθούμε τα παρακάτω βήματα.

Απομακρύνουμε όλα τα αρχεία του τρέχοντος directory από το index του git με:

Και μετά τα προσθέτουμε πάλι με:

Με τον τρόπο αυτό, βγάλαμε όλα τα αρχεία από το index του git και στη συνέχεια, όταν κάναμε το ‘add’ το git πλέον ακολούθησε τις οδηγίες του νέου ‘.gitignore’ και αγνόησε τα αρχεία που προηγουμένως είχαμε προσθέσει στο repository.

Ρύθμιση Git Για Να Αγνοεί Αλλαγές Σε Permissions

Όταν αλλάζετε τα permissions αρχείων με chmod τότε το git θα θεωρήσει ότι έχουν γίνει αλλαγές στα αρχεία αυτά και το git diff θα δείχνει ότι αυτά τα αρχεία (των οποίων τον κώδικα δεν έχετε αλλάξει) έχουν αλλαγές.

Αν θέλετε το git να αγνοεί όποιες αλλαγές γίνονται με chmod (αλλαγή permissions), τότε χρησιμοποιήστε το εξής: