Kako ukloniti osobnu e-poštu iz Git Commits

Kako ukloniti osobnu e-poštu iz Git Commits
Kako ukloniti osobnu e-poštu iz Git Commits

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

  1. Kako mogu spriječiti da moja e-pošta bude izložena u budućim obvezama?
  2. Postavite svoju e-poštu na username@users.noreply.github.com u vašoj Git konfiguraciji.
  3. Mogu li promijeniti e-poštu za već proslijeđene obveze?
  4. Da, možete koristiti git filter-branch ili BFG Repo-Cleaner za ponovno pisanje povijesti predaje i promjenu e-pošte.
  5. Koji je najlakši način da sakrijem svoju e-poštu u budućim obvezama?
  6. 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.
  7. Mijenja li izmjena predaje njegovu povijest?
  8. Da, git commit --amend mijenja posljednju predaju, koja se može prisilno gurnuti da ažurira spremište.
  9. Mogu li održavatelji repozitorija promijeniti moje informacije o predaji?
  10. Održavači imaju ograničenu mogućnost mijenjanja povijesti predaja, ali mogu nametnuti pravila privatnosti za buduća predavanja.
  11. Je li sigurno ponovno pisati povijest predaje?
  12. Prepisivanje povijesti može utjecati na suradnju, stoga to treba učiniti pažljivo, idealno u kontroliranom okruženju.
  13. Kakav je utjecaj promjena koje potiču silu?
  14. Prisilno guranje može prebrisati povijest, što bi moglo zbuniti suradnike, stoga jasno komunicirajte prije nego što to učinite.
  15. Može li se privatnost e-pošte nametnuti u cijeloj organizaciji?
  16. Da, GitHub organizacije mogu postavljati pravila i koristiti alate poput pre-commit hooks kako bi se osigurala privatnost e-pošte.
  17. Što su pre-commit zakačke?
  18. 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.