Zaščita vaše zasebnosti e-pošte na GitHubu
Izpostavljenost vašega osebnega e-poštnega sporočila v GitHub-ovih obvezah je lahko skrb za zasebnost, zlasti pri delu v javnih repozitorijih. Če ste odprli zahtevo za vleko (PR), ki je bila združena, in opazili, da je vaš osebni e-poštni naslov viden, je pomembno, da ukrepate, da ga skrijete.
V tem priročniku bomo raziskali različne metode za odstranitev ali zakrivanje vašega e-poštnega naslova pred javnim ogledom po združitvi PR-ja. Razpravljali bomo tudi o tem, ali imajo vzdrževalci možnost spreminjanja informacij o odobritvah in kako učinkovito spremeniti vaše objave.
Ukaz | Opis |
---|---|
git filter-branch | Ponovno napiše zgodovino odobritev, da spremeni informacije o avtorju in pošiljatelju v repozitoriju Git. |
export GIT_AUTHOR_NAME | Nastavi ime avtorja za objave, ki se prepisujejo v operaciji filtrirne veje. |
export GIT_AUTHOR_EMAIL | Nastavi e-poštni naslov avtorja za objave, ki se prepisujejo v operaciji filtrirne veje. |
wget | Prenese datoteke iz interneta, ki se tukaj uporabljajo za prenos orodja BFG Repo-Cleaner. |
bfg-1.13.0.jar | Arhivska datoteka Java za BFG Repo-Cleaner, ki poenostavi postopek čiščenja zgodovine repozitorija. |
--replace-text | Ukaz BFG Repo-Cleaner za zamenjavo določenega besedila (e-poštnih naslovov) v zgodovini repozitorija. |
git reflog expire | Potečejo vnosi v reflog, kar je uporabno za čiščenje referenc na prepisano zgodovino. |
git gc --prune=now | Izvaja zbiranje smeti in takoj odstrani nedosegljive predmete, ki se uporabijo po ponovnem pisanju zgodovine. |
git commit --amend | Spremeni najnovejšo objavo z novimi informacijami o avtorju ali spremeni vsebino objave. |
Odstranjevanje osebne e-pošte iz Git Commits
Skripti so nudili pomoč pri odstranjevanju osebnih e-poštnih podatkov iz Git commits po združitvi zahteve za vlečenje. Prvi scenarij uporablja da ponovno napišete zgodovino potrditev. Ta ukaz ponovi vsako objavo in preveri, ali se e-pošta avtorja ali pošiljatelja ujema s staro e-pošto. Če se, ga nadomesti z novim, anonimiziranim e-poštnim sporočilom. Po ponovnem pisanju zgodovine odobritev je za posodobitev oddaljenega repozitorija potreben prisilni pritisk. The in ukazi so tukaj ključnega pomena za zagotovitev, da imajo prepisane objave pravilne podatke o e-pošti.
Drugi scenarij izkorišča , ki je enostavnejša in hitrejša alternativa filter-veji. Z uporabo lahko BFG zamenja vse primerke starega e-poštnega sporočila z novim v celotni zgodovini skladišča. Po zamenjavi skript izvede zbiranje smeti s za čiščenje morebitnih preostalih podatkov. Tretji skript se osredotoča na spreminjanje zadnje objave z uporabo git commit --amend, ki omogoča hitre spremembe podatkov o avtorju brez prepisovanja celotne zgodovine.
Uporaba Git Filter-Branch za ponovno pisanje zgodovine odobritev
Uporaba lupinskega skriptiranja z Gitom
#!/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/*'
Uporaba BFG Repo-Cleaner za lažje odstranjevanje e-pošte
Uporaba Jave 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
Spreminjanje zadnje objave za spremembo e-pošte
Uporaba ukazne vrstice Git za preprosto spreminjanje
# 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
Zagotavljanje zasebnosti po združitvi zahteve za vlečenje
Drug vidik, ki ga morate upoštevati, ko poskušate odstraniti osebno e-pošto iz Git commits, je uporaba . Če konfigurirate svojega odjemalca Git za uporabo zasebnega e-poštnega naslova, ki ga zagotovi GitHub, se lahko izognete izpostavljanju svojega pravega e-poštnega sporočila v prihodnjih objavah. To lahko storite tako, da svoj e-poštni naslov nastavite na obliko . Poleg tega omogočanje zasebnosti e-pošte v nastavitvah GitHub zagotavlja, da se vaša zasebna e-pošta uporablja za spletne operacije Git.
Za objave, ki so že bile potisnjene in združene, imajo GitHubovi vzdrževalci omejeno moč za spreminjanje zgodovinskih podatkov o objavi. Vendar pa lahko pomagajo z uveljavljanjem pravilnikov o repozitoriju, ki spodbujajo ali zahtevajo od sodelavcev uporabo zasebnih e-poštnih sporočil. V skrajnih primerih lahko pomagajo pri odstranjevanju občutljivih podatkov, vendar to običajno vključuje ponovno pisanje zgodovine, kar lahko vpliva na vse sodelujoče.
- Kako lahko preprečim, da bi bila moja e-pošta izpostavljena v prihodnjih objavah?
- Nastavite svoj e-poštni naslov na v vaši konfiguraciji Git.
- Ali lahko spremenim e-poštni naslov za že potisnjene potrditve?
- Da, lahko uporabite oz da ponovno napišete zgodovino potrditve in spremenite e-pošto.
- Kako najlažje skrijem svojo e-pošto v prihodnjih objavah?
- Konfigurirajte svoj račun GitHub za uporabo zasebne e-pošte in nastavite e-pošto odjemalca Git na .
- Ali spreminjanje objave spremeni njeno zgodovino?
- ja spremeni najnovejšo objavo, ki jo je mogoče prisilno potisniti za posodobitev repozitorija.
- Ali lahko vzdrževalci repozitorija spremenijo moje informacije o objavi?
- Vzdrževalci imajo omejeno možnost spreminjanja zgodovine odobritev, lahko pa uveljavijo pravilnike o zasebnosti za prihodnje objave.
- Ali je varno prepisati zgodovino odobritev?
- Ponovno pisanje zgodovine lahko vpliva na sodelovanje, zato ga je treba izvajati previdno, najbolje v nadzorovanem okolju.
- Kakšen je vpliv silovitih sprememb?
- Prisilno pritiskanje lahko prepiše zgodovino, kar lahko zmede sodelavce, zato se pred tem jasno sporazumevajte.
- Ali je mogoče zasebnost e-pošte uveljaviti v celotni organizaciji?
- Da, organizacije GitHub lahko nastavijo politike in uporabljajo orodja, kot so da zagotovite zasebnost elektronske pošte.
- Kaj so kljuke pred potrditvijo?
- Pre-commit hooks so skripti, ki se zaženejo, preden je potrditev ustvarjena, in zagotavljajo, da izpolnjuje določene kriterije, kot je uporaba zasebne e-pošte.
Zaščita vaših osebnih podatkov je bistvenega pomena, zlasti ko prispevate v javna skladišča. S konfiguracijo nastavitev Git za uporabo zasebnega naslova in uporabo orodij, kot je in , lahko učinkovito odstranite osebne podatke iz zgodovine odobritev. Medtem ko imajo vzdrževalci repozitorija omejeno moč za spreminjanje informacij o potrditvi, lahko podpirajo prakse zasebnosti. Svojo ekipo vedno obvestite o kakršnih koli prepisih zgodovine, da preprečite zmedo. S temi metodami lahko ohranite svojo zasebnost, medtem ko prispevate k odprtokodnim projektom.