Ochrana súkromia vášho e-mailu na GitHub
Zverejnenie vášho osobného e-mailu v záväzkoch GitHub môže byť problémom ochrany osobných údajov, najmä pri práci na verejných úložiskách. Ak ste otvorili žiadosť o stiahnutie (PR), ktorá bola zlúčená, a všimli ste si, že váš osobný e-mail je viditeľný, je dôležité podniknúť kroky na jeho skrytie.
V tejto príručke preskúmame rôzne metódy na odstránenie alebo zakrytie vašej e-mailovej adresy pred verejnosťou po zlúčení PR. Budeme tiež diskutovať o tom, či správcovia majú možnosť zmeniť informácie o odovzdaní a ako efektívne upraviť vaše odovzdania.
Príkaz | Popis |
---|---|
git filter-branch | Prepíše históriu odovzdania, aby sa zmenili informácie o autorovi a odosielateľovi v úložisku Git. |
export GIT_AUTHOR_NAME | Nastavuje meno autora pre potvrdenia, ktoré sa prepisujú v operácii filter-branch. |
export GIT_AUTHOR_EMAIL | Nastavuje e-mail autora pre potvrdenia, ktoré sa prepisujú v operácii vetvy filtra. |
wget | Sťahuje súbory z internetu, ktoré sa tu používajú na stiahnutie nástroja BFG Repo-Cleaner. |
bfg-1.13.0.jar | Súbor Java Archive pre BFG Repo-Cleaner, ktorý zjednodušuje proces čistenia histórie úložiska. |
--replace-text | Príkaz BFG Repo-Cleaner na nahradenie špecifického textu (e-mailových adries) v histórii úložiska. |
git reflog expire | Platnosť položiek v reflogu vyprší, čo je užitočné na vyčistenie odkazov na prepísanú históriu. |
git gc --prune=now | Okamžite vykonáva zber odpadu a orezáva nedostupné objekty, ktoré sa používajú po prepísaní histórie. |
git commit --amend | Opravuje najnovšie odovzdanie novými informáciami o autorovi alebo zmenami obsahu odovzdania. |
Odstránenie osobného e-mailu z Git Commits
Skripty poskytli pomoc pri odstraňovaní osobných e-mailových informácií z potvrdení Git po zlúčení žiadosti o stiahnutie. Prvý skript používa prepísať históriu odovzdania. Tento príkaz prechádza každým potvrdením a kontroluje, či sa e-mail autora alebo e-mailu zhoduje so starým e-mailom. Ak áno, nahradí ho novým, anonymizovaným e-mailom. Po prepísaní histórie odovzdania sa vyžaduje vynútené zatlačenie na aktualizáciu vzdialeného úložiska. The a príkazy sú tu kľúčové, aby sa zabezpečilo, že prepísané commity budú mať správne e-mailové informácie.
Druhý skript využíva , čo je jednoduchšia a rýchlejšia alternatíva k filtru-vetve. Pomocou BFG môže nahradiť všetky inštancie starého e-mailu novým v celej histórii úložiska. Po výmene skript vykoná zber odpadu na vyčistenie zvyškových údajov. Tretí skript sa zameriava na úpravu posledného použitia odovzdania git commit --amend, ktorý umožňuje rýchle zmeny informácií o autorovi bez prepisovania celej histórie.
Použitie Git Filter-Branch na prepísanie histórie potvrdenia
Používanie skriptovania Shell s 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/*'
Použitie BFG Repo-Cleaner na jednoduchšie odstránenie e-mailov
Používanie Java s 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
Úprava posledného záväzku na zmenu e-mailu
Použitie príkazového riadku Git na jednoduchú úpravu
# 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
Zabezpečenie súkromia po zlúčení žiadosti o stiahnutie
Ďalším aspektom, ktorý treba zvážiť pri pokuse o odstránenie osobného e-mailu z potvrdení Git, je použitie . Konfiguráciou svojho klienta Git na používanie súkromnej e-mailovej adresy poskytnutej GitHubom sa môžete vyhnúť odhaleniu svojho skutočného e-mailu v budúcich potvrdeniach. Môžete to urobiť nastavením formátu e-mailu . Povolenie súkromia e-mailov v nastaveniach GitHubu navyše zaistí, že sa váš súkromný e-mail použije na webové operácie Git.
V prípade potvrdení, ktoré už boli odoslané a zlúčené, majú správcovia GitHubu obmedzenú právomoc meniť historické údaje o potvrdeniach. Môžu však pomôcť tým, že presadia pravidlá úložiska, ktoré povzbudzujú alebo vyžadujú prispievateľov, aby používali súkromné e-maily. V extrémnych prípadoch môžu pomôcť pri odstraňovaní citlivých údajov, ale to zvyčajne zahŕňa prepisovanie histórie, čo môže ovplyvniť všetkých prispievateľov.
- Ako môžem zabrániť odhaleniu môjho e-mailu v budúcich potvrdeniach?
- Nastavte si email na vo vašej konfigurácii Git.
- Môžem zmeniť e-mail pre už odoslané potvrdenia?
- Áno, môžete použiť alebo prepísať históriu odovzdania a zmeniť e-mail.
- Aký je najjednoduchší spôsob, ako skryť môj e-mail v budúcich potvrdeniach?
- Nakonfigurujte svoj účet GitHub na používanie súkromného e-mailu a nastavte e-mail svojho klienta Git na .
- Zmení úprava potvrdenia jeho históriu?
- Áno, zmení najnovšie potvrdenie, ktoré je možné vynútiť, aby sa aktualizoval archív.
- Môžu správcovia úložiska zmeniť moje informácie o odovzdaní?
- Správcovia majú obmedzenú schopnosť meniť históriu odovzdania, ale môžu presadzovať zásady ochrany osobných údajov pre budúce odovzdania.
- Je bezpečné prepísať históriu odovzdania?
- Prepisovanie histórie môže ovplyvniť spoluprácu, preto by sa malo robiť opatrne, ideálne v kontrolovanom prostredí.
- Aký je vplyv silových zmien?
- Vynútené zatlačenie môže prepísať históriu, čo môže zmiasť spolupracovníkov, preto pred tým jasne komunikujte.
- Je možné presadzovať súkromie e-mailov v rámci celej organizácie?
- Áno, organizácie GitHub môžu nastavovať politiky a používať nástroje ako napr na zabezpečenie súkromia e-mailov.
- Aké sú háčiky pred záväzkom?
- Háky pred potvrdením sú skripty, ktoré sa spúšťajú pred vytvorením potvrdenia, čím zabezpečujú, že spĺňa určité kritériá, ako je použitie súkromného e-mailu.
Ochrana vašich osobných údajov je nevyhnutná, najmä pri prispievaní do verejných úložísk. Konfiguráciou nastavení Git na používanie súkromnej adresy a pomocou nástrojov ako a , môžete efektívne odstrániť osobné údaje z histórie spáchania. Aj keď správcovia úložiska majú obmedzenú právomoc meniť informácie o odovzdaní, môžu podporovať postupy ochrany osobných údajov. Vždy sa uistite, že všetky prepisy histórie oznámite svojmu tímu, aby ste sa vyhli nejasnostiam. Pomocou týchto metód si môžete zachovať svoje súkromie a zároveň prispievať do projektov s otvoreným zdrojovým kódom.