Zaštita vaše privatnosti e-pošte na GitHubu
Izlaganje vaše osobne e-pošte u GitHub obvezama može predstavljati problem privatnosti, posebno kada radite na javnim spremištima. Ako ste otvorili zahtjev za povlačenje (PR) koji je spojen i primijetili da je vaša osobna e-pošta vidljiva, važno je poduzeti korake da je sakrijete.
U ovom ćemo vodiču istražiti različite metode uklanjanja ili skrivanja vaše adrese e-pošte od javnog pogleda nakon spajanja PR-a. Također ćemo raspravljati o tome imaju li održavatelji mogućnost mijenjanja informacija o predaji i kako učinkovito izmijeniti vaše obveze.
Naredba | Opis |
---|---|
git filter-branch | Prepisuje povijest predaje radi promjene informacija o autoru i izvršitelju u Git repozitoriju. |
export GIT_AUTHOR_NAME | Postavlja ime autora za obveze koje se prepisuju u operaciji filtarskog grananja. |
export GIT_AUTHOR_EMAIL | Postavlja e-poštu autora za obveze koje se prepisuju u operaciji grananja filtera. |
wget | Preuzima datoteke s interneta, ovdje se koristi za preuzimanje alata BFG Repo-Cleaner. |
bfg-1.13.0.jar | Java arhivska datoteka za BFG Repo-Cleaner, koja pojednostavljuje proces čišćenja povijesti repozitorija. |
--replace-text | Naredba BFG Repo-Cleaner za zamjenu određenog teksta (adrese e-pošte) u povijesti spremišta. |
git reflog expire | Ističu unosi u reflogu, što je korisno za čišćenje referenci na ponovno napisanu povijest. |
git gc --prune=now | Izvodi skupljanje smeća i odmah uklanja nedostupne objekte, koji se koriste nakon ponovnog pisanja povijesti. |
git commit --amend | Dopunjava najnovije uvrštavanje novim informacijama o autoru ili promjenama u sadržaju uvrštavanja. |
Uklanjanje osobne e-pošte iz Git Commits
Skripte su pružile pomoć u uklanjanju osobnih podataka o e-pošti iz Git obveza nakon što je zahtjev za povlačenje spojen. Prva skripta koristi git filter-branch prepisati povijest predaje. Ova naredba prolazi kroz svako uvrštavanje, provjeravajući podudara li se adresa e-pošte autora ili izvršitelja sa starom e-poštom. Ako ima, zamjenjuje je novom, anonimiziranom e-poštom. Nakon ponovnog pisanja povijesti predaje, potreban je prisilni pritisak za ažuriranje udaljenog repozitorija. The export GIT_AUTHOR_EMAIL i export GIT_COMMITTER_EMAIL naredbe su ovdje ključne kako bi se osiguralo da prepisana predavanja imaju točne informacije o e-pošti.
Druga skripta koristi BFG Repo-Cleaner, što je jednostavnija i brža alternativa filter-grani. Korištenjem --replace-text BFG može zamijeniti sve instance stare e-pošte novom u cijeloj povijesti repozitorija. Nakon zamjene, skripta izvodi skupljanje smeća sa git gc --prune=now za čišćenje svih zaostalih podataka. Treća skripta usredotočuje se na izmjenu najnovije upotrebe commita git commit --amend, koji omogućuje brze promjene podataka o autoru bez ponovnog pisanja cijele povijesti.
Korištenje Git Filter-Branch za ponovno pisanje povijesti predaje
Korištenje Shell skriptiranja s 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/*'
Korištenje BFG Repo-Cleanera za lakše uklanjanje e-pošte
Korištenje Jave 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
Izmjena i dopuna posljednje predaje za promjenu e-pošte
Korištenje Git naredbenog retka za jednostavno mijenjanje
# 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
Osiguravanje privatnosti nakon spajanja zahtjeva za povlačenje
Još jedan aspekt koji treba uzeti u obzir kada pokušavate ukloniti osobnu e-poštu iz Git obveza je upotreba GitHub’s personal email settings. Konfiguriranjem vašeg Git klijenta da koristi privatnu adresu e-pošte koju daje GitHub, možete izbjeći izlaganje svoje prave e-pošte u budućim obvezama. To možete učiniti postavljanjem svoje e-pošte na format username@users.noreply.github.com. Dodatno, omogućavanje privatnosti e-pošte u postavkama GitHuba osigurava da se vaša privatna e-pošta koristi za Git operacije temeljene na webu.
Za predaje koje su već proslijeđene i spojene, GitHubovi održavatelji imaju ograničenu moć mijenjanja podataka o povijesnim obvezama. Međutim, mogu pomoći provođenjem pravila repozitorija koja potiču ili zahtijevaju od suradnika da koriste privatne e-mailove. U ekstremnim slučajevima, oni mogu pomoći u uklanjanju osjetljivih podataka, ali to obično uključuje ponovno pisanje povijesti, što može utjecati na sve suradnike.
Često postavljana pitanja o privatnosti e-pošte u Git Commits
- Kako mogu spriječiti da moja e-pošta bude izložena u budućim obvezama?
- Postavite svoju e-poštu na username@users.noreply.github.com u vašoj Git konfiguraciji.
- Mogu li promijeniti e-poštu za već proslijeđene obveze?
- Da, možete koristiti git filter-branch ili BFG Repo-Cleaner za ponovno pisanje povijesti predaje i promjenu e-pošte.
- Koji je najlakši način da sakrijem svoju e-poštu u budućim obvezama?
- Konfigurirajte svoj GitHub račun za korištenje privatne e-pošte i postavite e-poštu svog Git klijenta na username@users.noreply.github.com.
- Mijenja li izmjena predaje njegovu povijest?
- Da, git commit --amend mijenja posljednju predaju, koja se može prisilno gurnuti da ažurira spremište.
- Mogu li održavatelji repozitorija promijeniti moje informacije o predaji?
- Održavači imaju ograničenu mogućnost mijenjanja povijesti predaja, ali mogu nametnuti pravila privatnosti za buduća predavanja.
- Je li sigurno ponovno pisati povijest predaje?
- Prepisivanje povijesti može utjecati na suradnju, stoga to treba učiniti pažljivo, idealno u kontroliranom okruženju.
- Kakav je utjecaj promjena koje potiču silu?
- Prisilno guranje može prebrisati povijest, što bi moglo zbuniti suradnike, stoga jasno komunicirajte prije nego što to učinite.
- Može li se privatnost e-pošte nametnuti u cijeloj organizaciji?
- Da, GitHub organizacije mogu postavljati pravila i koristiti alate poput pre-commit hooks kako bi se osigurala privatnost e-pošte.
- Što su pre-commit zakačke?
- Pre-commit kuke su skripte koje se pokreću prije nego se kreira commit, osiguravajući da ispunjava određene kriterije kao što je korištenje privatne e-pošte.
Završne misli o privatnosti e-pošte u Git Commits
Zaštita vaših osobnih podataka ključna je, osobito kada doprinosite javnim repozitorijima. Konfiguriranjem vaših Git postavki za korištenje privatne adrese i korištenjem alata kao što su git filter-branch i BFG Repo-Cleaner, možete učinkovito ukloniti osobne podatke iz povijesti obveza. Dok održavatelji repozitorija imaju ograničenu moć mijenjanja podataka o predaji, oni mogu podržati prakse privatnosti. Obavezno obavijestite svoj tim o svakom prepravljanju povijesti kako biste izbjegli zabunu. Ovim metodama možete zadržati svoju privatnost dok pridonosite projektima otvorenog koda.