Υπάρχουν περιπτώσεις που θα χρειαστεί να μετατρέψετε ένα private repository σε public. Αν έχετε κάνει commits με το όνομά σας και το προσωπικό σας email, ίσως να μη θέλετε αυτές οι πληροφορίες να εμφανίζονται στο log του repository που θα γίνει public.
Για να αλλάξετε όλα τα ονόματα και emails θα πρέπει να ακολουθήσετε τα παρακάτω βήματα.
Ορίζουμε τις τιμές για name και email που θέλουμε πλέον να εμφανίζονται δημόσια:
1 2 |
git config --global user.name John Doe git config --global user.email {some-git-username}@users.noreply.github.com |
Τώρα τσεκάρουμε ποια είναι τα name και email στο git config με τις εξής εντολές:
1 |
git config user.name |
1 |
git config user.email |
Δημιουργήστε ένα αρχείο με το όνομα git-change-author-details.sh
και βάλτε στο αρχείο αυτό τον παρακάτω κώδικα. Αλλάξτε τις τιμές για τα OLD_EMAIL
, CORRECT_NAME
και CORRECT_EMAIL
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash # Bash 'strict mode' set -uoe pipefail IFS=$'\n\t' git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags |
Τρέχουμε το αρχείο με την εντολή 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»