Ochrona prywatności poczty e-mail w GitHub
Ujawnienie Twojego osobistego adresu e-mail w GitHub może stanowić zagrożenie dla prywatności, szczególnie podczas pracy z repozytoriami publicznymi. Jeśli otworzyłeś żądanie ściągnięcia (PR), które zostało scalone i zauważyłeś, że Twój osobisty adres e-mail jest widoczny, ważne jest, aby podjąć kroki, aby go ukryć.
W tym przewodniku omówimy różne metody usuwania lub ukrywania adresu e-mail przed opinią publiczną po połączeniu PR. Omówimy także, czy opiekunowie mają możliwość zmiany informacji o zatwierdzeniach i jak skutecznie zmieniać zatwierdzenia.
Komenda | Opis |
---|---|
git filter-branch | Przepisuje historię zatwierdzeń, aby zmienić informacje o autorze i osobie zatwierdzającej w repozytorium Git. |
export GIT_AUTHOR_NAME | Ustawia nazwę autora zatwierdzeń przepisywanych w operacji gałęzi filtru. |
export GIT_AUTHOR_EMAIL | Ustawia adres e-mail autora dla zatwierdzeń przepisywanych w operacji filter-branch. |
wget | Pobiera pliki z Internetu, używane tutaj do pobrania narzędzia BFG Repo-Cleaner. |
bfg-1.13.0.jar | Plik Java Archive dla BFG Repo-Cleaner, który upraszcza proces czyszczenia historii repozytorium. |
--replace-text | Polecenie BFG Repo-Cleaner służące do zamiany określonego tekstu (adresów e-mail) w historii repozytorium. |
git reflog expire | Wygasa wpisy w reflogu, co jest przydatne do czyszczenia odniesień do przepisanej historii. |
git gc --prune=now | Natychmiast usuwa elementy bezużyteczne i usuwa nieosiągalne obiekty, używane po przepisaniu historii. |
git commit --amend | Modyfikuje najnowsze zatwierdzenie, dodając informacje o nowym autorze lub zmieniając treść zatwierdzenia. |
Usuwanie osobistego adresu e-mail z zatwierdzeń Git
Skrypty zapewniły pomoc w usuwaniu osobistych informacji e-mail z zatwierdzeń Git po połączeniu żądania ściągnięcia. Pierwszy skrypt używa aby przepisać historię zobowiązań. To polecenie wykonuje iterację po każdym zatwierdzeniu, sprawdzając, czy adres e-mail autora lub osoby zatwierdzającej odpowiada staremu e-mailowi. Jeśli tak, zastępuje go nowym, anonimowym adresem e-mail. Po przepisaniu historii zatwierdzeń wymagane jest wymuszenie push w celu aktualizacji zdalnego repozytorium. The I polecenia są tutaj kluczowe, aby upewnić się, że przepisane zatwierdzenia zawierają prawidłowe informacje e-mail.
Drugi skrypt wykorzystuje , co jest prostszą i szybszą alternatywą dla gałęzi filtrującej. Korzystając z poleceniem, BFG może zastąpić wszystkie wystąpienia starego e-maila nowym w całej historii repozytorium. Po wymianie skrypt wykonuje wyrzucanie elementów bezużytecznych aby wyczyścić wszelkie pozostałe dane. Trzeci skrypt skupia się na zmianie ostatniego zatwierdzenia za pomocą git commit --amend, co umożliwia szybką zmianę informacji o autorze bez konieczności przepisywania całej historii.
Użycie gałęzi filtrującej Git do przepisania historii zatwierdzeń
Używanie skryptów powłoki w Git
#!/bin/sh
# Ensure you have a clean working directory
git checkout main
# Rewrite the commit history to change the author email
git filter-branch --env-filter \
'
OLD_EMAIL="my.personal@email.me"
CORRECT_NAME="My Username"
CORRECT_EMAIL="12345678+username@users.noreply.github.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
# Force push the changes to the repository
git push --force --tags origin 'refs/heads/*'
Korzystanie z BFG Repo-Cleaner w celu łatwiejszego usuwania wiadomości e-mail
Używanie Java z BFG Repo-Cleaner
# Download BFG Repo-Cleaner
wget https://repo1.maven.org/maven2/com/madgag/bfg/1.13.0/bfg-1.13.0.jar
# Run BFG to replace the old email with the new one
java -jar bfg-1.13.0.jar --replace-text 'my.personal@email.me==12345678+username@users.noreply.github.com' .
# Cleanup and perform garbage collection
git reflog expire --expire=now --all && git gc --prune=now --aggressive
# Push the changes to the remote repository
git push --force
Zmiana ostatniego zatwierdzenia w celu zmiany adresu e-mail
Używanie wiersza poleceń Git do prostych poprawek
# Change the email for the last commit
git commit --amend --author="My Username <12345678+username@users.noreply.github.com>"
# Push the amended commit to the repository
git push --force
Zapewnienie prywatności po połączeniu żądania ściągnięcia
Kolejnym aspektem, który należy wziąć pod uwagę podczas próby usunięcia osobistych wiadomości e-mail z zatwierdzeń Git, jest użycie . Konfigurując swojego klienta Git tak, aby korzystał z prywatnego adresu e-mail dostarczonego przez GitHub, możesz uniknąć ujawniania prawdziwego adresu e-mail w przyszłych zatwierdzeniach. Można to zrobić, ustawiając format poczty e-mail . Dodatkowo włączenie prywatności poczty e-mail w ustawieniach GitHuba gwarantuje, że Twoja prywatna poczta e-mail będzie używana do operacji Git w Internecie.
W przypadku zatwierdzeń, które zostały już wypchnięte i scalone, opiekunowie GitHuba mają ograniczone uprawnienia do zmiany historycznych danych zatwierdzeń. Mogą jednak pomóc, egzekwując zasady repozytorium, które zachęcają lub wymagają od autorów korzystania z prywatnych wiadomości e-mail. W skrajnych przypadkach mogą pomóc w usunięciu wrażliwych danych, ale zwykle wiąże się to z przepisaniem historii, co może mieć wpływ na wszystkich autorów.
- Jak mogę zapobiec ujawnieniu mojego e-maila w przyszłych zatwierdzeniach?
- Ustaw swój adres e-mail na w konfiguracji Git.
- Czy mogę zmienić adres e-mail dla już wypchniętych zatwierdzeń?
- Tak, możesz skorzystać Lub aby przepisać historię zatwierdzeń i zmienić adres e-mail.
- Jaki jest najłatwiejszy sposób na ukrycie mojego adresu e-mail w przyszłych zatwierdzeniach?
- Skonfiguruj swoje konto GitHub tak, aby korzystało z prywatnego adresu e-mail i ustaw adres e-mail swojego klienta Git na .
- Czy zmiana zatwierdzenia zmienia jego historię?
- Tak, zmienia najnowsze zatwierdzenie, które można wymusić w celu aktualizacji repozytorium.
- Czy opiekunowie repozytoriów mogą zmieniać informacje o moich zatwierdzeniach?
- Opiekunowie mają ograniczone możliwości zmiany historii zatwierdzeń, ale mogą egzekwować zasady prywatności dla przyszłych zatwierdzeń.
- Czy ponowne zapisanie historii zatwierdzeń jest bezpieczne?
- Przepisywanie historii może mieć wpływ na współpracę, dlatego należy to robić ostrożnie, najlepiej w kontrolowanym środowisku.
- Jaki jest wpływ zmian narzucających siłę?
- Naciskanie na siłę może nadpisać historię, co może zdezorientować współpracowników, dlatego przed wykonaniem tej czynności należy wyraźnie się poinformować.
- Czy można egzekwować prywatność poczty e-mail w całej organizacji?
- Tak, organizacje GitHub mogą ustalać zasady i korzystać z narzędzi takich jak aby zapewnić prywatność poczty elektronicznej.
- Co to są haki przed zatwierdzeniem?
- Haki przed zatwierdzeniem to skrypty uruchamiane przed utworzeniem zatwierdzenia, zapewniające spełnienie określonych kryteriów, np. użycie prywatnego adresu e-mail.
Ochrona danych osobowych jest niezbędna, szczególnie w przypadku udostępniania informacji w publicznych repozytoriach. Konfigurując ustawienia Git tak, aby korzystały z adresu prywatnego i korzystając z narzędzi takich jak I , możesz skutecznie usunąć dane osobowe z historii zatwierdzeń. Chociaż opiekunowie repozytoriów mają ograniczone uprawnienia do zmiany informacji o zatwierdzeniach, mogą wspierać praktyki dotyczące prywatności. Zawsze informuj swój zespół o wszelkich zmianach w historii, aby uniknąć nieporozumień. Dzięki tym metodom możesz zachować swoją prywatność, jednocześnie przyczyniając się do projektów open source.