Sobes.tech
Junior

Έχετε ανακαλύψει ότι στην ιστορία του κύριου αποθετηρίου Git υπάρχουν commits που περιέχουν κρίσιμα εμπιστευτικά δεδομένα. Αυτά τα δεδομένα πρέπει να διαγραφούν πλήρως από ολόκληρη την ιστορία του αποθετηρίου. Αξιολογήστε πόσο σωστό και ασφαλές θα ήταν να χρησιμοποιήσετε την ακόλουθη στρατηγική: δημιουργήστε ένα νέο commit που θα διαγράψει τα εμπιστευτικά δεδομένα από την τρέχουσα έκδοση των αρχείων και στείλτε το στο main. - Σωστό, αλλά όχι βέλτιστο. Είναι καλύτερο να χρησιμοποιήσετε το git revert για να αναιρέσετε commits - Συνθηματικά σωστό. Είναι μια προσωρινή λύση μέχρι να βρεθεί ένα πιο ριζικό μέσο για τη διαγραφή των δεδομένων - Λάθος και ανασφαλές. Τα δεδομένα θα διαγραφούν από την τρέχουσα έκδοση, αλλά θα παραμείνουν προσβάσιμα στην ιστορία του αποθετηρίου - Λάθος. Αυτό το commit μπορεί να προκαλέσει νέα συγκρούσεις κατά τη συγχώνευση με άλλα branches - Σωστό και ασφαλές. Αυτή η μέθοδος διασφαλίζει ότι τα δεδομένα θα διαγραφούν και δεν θα εμφανιστούν ξανά στο αποθετήριο

sobes.tech AI

Απάντηση από AI

Неправильно и небезопасно. Создание нового коммита, который удалит конфиденциальные данные из текущей версии файлов, не удалит эти данные из истории репозитория — они останутся доступны в предыдущих коммитах. Чтобы полностью удалить конфиденциальные данные из всей истории, нужно использовать инструменты для переписывания истории, например, git filter-branch, git rebase или git filter-repo. После этого потребуется форсированная отправка (git push --force) и уведомление всех участников, чтобы они обновили свои локальные копии. Простое добавление коммита с удалением данных не решит проблему безопасности.