Ορίστε ένας αναλυτικός οδηγός για τη Μεταφορά ενός Git Repository από το GitLab στο GitHub με GPG-Signed Commits:

Μεταφορά ενός Git Repository από το GitLab στο GitHub με GPG-Signed Commits

Εισαγωγή

Στον σημερινό DevOps-οδηγούμενο κόσμο, τα version control systems όπως το Git είναι η ραχοκοκαλιά της ανάπτυξης λογισμικού. Το GitLab και το GitHub είναι δύο από τις πιο δημοφιλείς πλατφόρμες για τη διαχείριση Git repositories. Μια βασική πτυχή της διατήρησης της ακεραιότητας και της αυθεντικότητας του κώδικά σου κατά τη μεταφορά repositories είναι να διασφαλίσεις ότι όλα τα commits είναι GPG-signed.

Οδηγός Βήμα-Βήμα

Βήμα 1: Κλωνοποίηση του GitLab Repository Τοπικά

git clone --bare https://gitlab.com/username/repository.git
cd repository.git

Βήμα 2: Δημιούργησε ένα Νέο Repository στο GitHub

Βήμα 3: Πρόσθεσε το GitHub ως Remote Repository

git remote add github https://github.com/username/new-repository.git

Βήμα 4: Υπόγραψε Ξανά Όλα τα Commits με το GitHub GPG Key σου

Εγκατάσταση του git filter-repo
pip install git-filter-repo
Ρύθμιση του Git με το GitHub GPG Key σου
git config user.name "Your GitHub Name"
git config user.email "your_github_email@example.com"
git config user.signingkey "your_gpg_key_id"
Επαναϋπογραφή Commits
git filter-repo --commit-callback '
commit.author_name = b"Your GitHub Name"
commit.author_email = b"your_github_email@example.com"
commit.committer_name = b"Your GitHub Name"
commit.committer_email = b"your_github_email@example.com"
commit.committer_date = commit.committer_date
' --tag-rename '' --commit-signature ""

Επαναϋπογραφή όλων των commits με το GPG key

git log –reverse –format=%H | while read commit; do GIT_COMMITTER_DATE="$(git show -s –format=%cD “$commit”)" git commit –amend –no-edit –date “$(git show -s –format=%cD “$commit”)” –gpg-sign=“your_gpg_key_id” done

Βήμα 5: Κάνε Push το Επαναϋπογεγραμμένο Repository στο GitHub

git push --force --tags github main

Βήμα 6: Επαλήθευσε τις GPG Υπογραφές στο GitHub

Βήμα 7: Καθάρισε το Τοπικό Repository (Προαιρετικό)

cd ..
rm -rf repository.git

Συμπέρασμα

Η μεταφορά ενός Git repository από το GitLab στο GitHub με διατήρηση των GPG-signed commits απαιτεί προσεκτική προσοχή στη λεπτομέρεια. Αυτός ο οδηγός σε καθοδηγεί σε κάθε βήμα. Ακολουθώντας αυτή τη διαδικασία, μπορείς να διασφαλίσεις ότι η ακεραιότητα και η αυθεντικότητα του commit history σου διατηρούνται, δίνοντας στην ομάδα και τους συνεργάτες σου εμπιστοσύνη στο μεταφερόμενο repository.