Kā noņemt personīgo e-pastu no Git Commits

Kā noņemt personīgo e-pastu no Git Commits
Kā noņemt personīgo e-pastu no Git Commits

Jūsu e-pasta konfidencialitātes aizsardzība vietnē GitHub

Jūsu personiskā e-pasta atklāšana GitHub saistībās var radīt bažas par privātumu, it īpaši, strādājot ar publiskajiem repozitorijiem. Ja esat atvēris vilkšanas pieprasījumu (PR), kas ir apvienots, un pamanījāt, ka ir redzams jūsu personīgais e-pasts, ir svarīgi veikt darbības, lai to paslēptu.

Šajā rokasgrāmatā mēs izpētīsim dažādas metodes, kā noņemt vai aizsegt jūsu e-pasta adresi no publiskās apskates pēc PR apvienošanas. Mēs arī apspriedīsim, vai uzturētājiem ir iespēja mainīt saistību informāciju un kā efektīvi grozīt jūsu saistības.

Komanda Apraksts
git filter-branch Pārraksta saistību vēsturi, lai Git repozitorijā mainītu autora un saistību informāciju.
export GIT_AUTHOR_NAME Iestata autora vārdu saistībām, kas tiek pārrakstītas filtra filiāles darbībā.
export GIT_AUTHOR_EMAIL Iestata autora e-pasta adresi saistībām, kas tiek pārrakstītas filtra filiāles darbībā.
wget Lejupielādē failus no interneta, ko izmanto šeit, lai lejupielādētu BFG Repo-Cleaner rīku.
bfg-1.13.0.jar Java arhīva fails BFG Repo-Cleaner, kas vienkāršo repozitorija vēstures tīrīšanas procesu.
--replace-text BFG Repo-Cleaner komanda, lai aizstātu noteiktu tekstu (e-pasta adreses) repozitorija vēsturē.
git reflog expire Beidzas ierakstu derīguma termiņš reflogā, kas noder, lai notīrītu atsauces uz pārrakstīto vēsturi.
git gc --prune=now Veic atkritumu savākšanu un nekavējoties apgriež nesasniedzamus objektus, ko izmanto pēc vēstures pārrakstīšanas.
git commit --amend Groza pēdējo apņemšanos ar jaunu autora informāciju vai izmaiņām saistību saturā.

Personiskā e-pasta noņemšana no Git Commits

Skripti palīdzēja noņemt personisko e-pasta informāciju no Git saistībām pēc tam, kad tika apvienots vilkšanas pieprasījums. Pirmais skripts izmanto git filter-branch lai pārrakstītu saistību vēsturi. Šī komanda atkārtojas katrā apstiprinājuma reizē, pārbaudot, vai autora vai pilnvarotā e-pasta adrese atbilst vecajam e-pasta ziņojumam. Ja tā notiek, tas tiek aizstāts ar jauno, anonimizēto e-pastu. Pēc saistību vēstures pārrakstīšanas ir nepieciešams piespiedu nospiedums, lai atjauninātu attālo repozitoriju. The export GIT_AUTHOR_EMAIL un export GIT_COMMITTER_EMAIL Komandām šeit ir izšķiroša nozīme, lai nodrošinātu, ka pārrakstītajām saistībām ir pareiza e-pasta informācija.

Otrais skripts sviras BFG Repo-Cleaner, kas ir vienkāršāka un ātrāka alternatīva filtram. Izmantojot --replace-text komandu, BFG var aizstāt visus vecā e-pasta gadījumus ar jauno visā repozitorija vēsturē. Pēc nomaiņas skripts veic atkritumu savākšanu ar git gc --prune=now lai notīrītu visus atlikušos datus. Trešais skripts koncentrējas uz jaunāko saistību grozīšanu, izmantojot git commit --amend, kas ļauj ātri mainīt autora informāciju, nepārrakstot visu vēsturi.

Git Filter-Branch izmantošana, lai pārrakstītu saistību vēsturi

Shell skriptu izmantošana ar 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/*'

BFG Repo-Cleaner izmantošana vienkāršākai e-pasta noņemšanai

Java izmantošana ar 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

Pēdējās saistības par e-pasta izmaiņām grozīšana

Git komandrindas izmantošana vienkāršai labošanai

# 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

Privātuma nodrošināšana pēc piesaistes pieprasījuma apvienošanas

Vēl viens aspekts, kas jāņem vērā, mēģinot noņemt personīgo e-pastu no Git saistībām, ir izmantošana GitHub’s personal email settings. Konfigurējot savu Git klientu, lai tā izmantotu privātu e-pasta adresi, ko nodrošina GitHub, turpmākajās saistībās varat izvairīties no sava īstā e-pasta atklāšanas. To var izdarīt, iestatot e-pasta formātu username@users.noreply.github.com. Turklāt, iespējojot e-pasta konfidencialitāti GitHub iestatījumos, tiek nodrošināts, ka jūsu privātais e-pasts tiek izmantots tīmekļa Git darbībām.

Attiecībā uz saistībām, kas jau ir pārsūtītas un apvienotas, GitHub uzturētājiem ir ierobežotas tiesības mainīt vēsturiskos saistību datus. Tomēr tie var palīdzēt, ieviešot repozitoriju politikas, kas mudina vai pieprasa līdzautoriem izmantot privātus e-pastus. Ārkārtējos gadījumos tie var palīdzēt noņemt sensitīvus datus, taču parasti tas ir saistīts ar vēstures pārrakstīšanu, kas var ietekmēt visus līdzautorus.

Bieži uzdotie jautājumi par e-pasta konfidencialitāti pakalpojumā Git Commits

  1. Kā es varu novērst manu e-pasta atklāšanu turpmāko saistību izpildes laikā?
  2. Iestatiet savu e-pastu uz username@users.noreply.github.com savā Git konfigurācijā.
  3. Vai es varu mainīt e-pastu jau nosūtītajām saistībām?
  4. Jā, jūs varat izmantot git filter-branch vai BFG Repo-Cleaner lai pārrakstītu saistību vēsturi un mainītu e-pastu.
  5. Kāds ir vienkāršākais veids, kā paslēpt manu e-pastu turpmākajās saistībās?
  6. Konfigurējiet savu GitHub kontu, lai izmantotu privātu e-pastu, un iestatiet sava Git klienta e-pastu uz username@users.noreply.github.com.
  7. Vai saistību grozīšana maina tās vēsturi?
  8. Jā, git commit --amend maina jaunāko apņemšanos, kuru var piespiest, lai atjauninātu repozitoriju.
  9. Vai repozitorija uzturētāji var mainīt manu saistību informāciju?
  10. Uzturētājiem ir ierobežotas iespējas mainīt saistību vēsturi, taču viņi var ieviest privātuma politikas turpmākajām saistībām.
  11. Vai ir droši pārrakstīt saistību vēsturi?
  12. Vēstures pārrakstīšana var ietekmēt sadarbību, tāpēc tas jādara uzmanīgi, ideālā gadījumā kontrolētā vidē.
  13. Kāda ir piespiedu izmaiņu ietekme?
  14. Piespiedu nospiešana var pārrakstīt vēsturi, kas var mulsināt līdzstrādniekus, tāpēc pirms tā rīkojieties skaidri.
  15. Vai e-pasta privātumu var ieviest visā organizācijā?
  16. Jā, GitHub organizācijas var iestatīt politikas un izmantot tādus rīkus kā pre-commit hooks lai nodrošinātu e-pasta privātumu.
  17. Kas ir pirmsapņemšanās āķi?
  18. Pirmsapstiprināšanas āķi ir skripti, kas tiek palaisti pirms apņemšanās izveides, nodrošinot tā atbilstību noteiktiem kritērijiem, piemēram, izmantojot privātu e-pastu.

Pēdējās domas par e-pasta konfidencialitāti pakalpojumā Git Commits

Personiskās informācijas aizsardzība ir būtiska, jo īpaši, ja veicat ieguldījumu publiskajos krātuvēs. Konfigurējot savus Git iestatījumus, lai izmantotu privātu adresi, un izmantojot tādus rīkus kā git filter-branch un BFG Repo-Cleaner, jūs varat efektīvi noņemt personas datus no saistību vēstures. Lai gan repozitoriju uzturētājiem ir ierobežotas tiesības mainīt saistīto informāciju, viņi var atbalstīt privātuma praksi. Lai izvairītos no neskaidrībām, vienmēr sazinieties ar savu komandu par vēstures pārrakstīšanu. Izmantojot šīs metodes, varat saglabāt savu privātumu, vienlaikus sniedzot ieguldījumu atvērtā pirmkoda projektos.