Junior
Atradote, kad pagrindinio Git saugyklos istorijoje yra commit'ų, kuriuose yra kritinių konfidencialių duomenų. Šiuos duomenis reikia visiškai pašalinti iš visos saugyklos istorijos. Įvertinkite, kaip teisinga ir saugu būtų naudoti šią strategiją: sukurti naują commit'ą, kuris pašalins konfidencialius duomenis iš dabartinės failų versijos ir išsiųsti jį į main. - Teisinga, bet ne optimalu. Geriau naudoti git revert, kad atšaukti commit'us - Laikinai teisinga. Tai laikinas sprendimas, kol bus rastas radikalesnis būdas pašalinti duomenis - Neteisinga ir nesaugu. Duomenys bus pašalinti iš dabartinės versijos, bet liks prieinami saugyklos istorijoje - Neteisinga. Šis commit'as gali sukelti naujų konfliktų su kitomis šakomis - Teisinga ir saugu. Šis metodas garantuoja, kad duomenys bus pašalinti ir daugiau nebepasirodys saugykloje
sobes.tech AI
Atsakymas iš AI
Неправильно и небезопасно. Создание нового коммита, который удалит конфиденциальные данные из текущей версии файлов, не удалит эти данные из истории репозитория — они останутся доступны в предыдущих коммитах. Чтобы полностью удалить конфиденциальные данные из всей истории, нужно использовать инструменты для переписывания истории, например, git filter-branch, git rebase или git filter-repo. После этого потребуется форсированная отправка (git push --force) и уведомление всех участников, чтобы они обновили свои локальные копии. Простое добавление коммита с удалением данных не решит проблему безопасности.