Kaip pašalinti asmeninį el. paštą iš „Git Commits“.

Kaip pašalinti asmeninį el. paštą iš „Git Commits“.
Kaip pašalinti asmeninį el. paštą iš „Git Commits“.

El. pašto privatumo apsauga „GitHub“.

Asmeninio el. pašto atskleidimas „GitHub“ įsipareigojimų metu gali kelti susirūpinimą dėl privatumo, ypač dirbant su viešosiomis saugyklomis. Jei atidarėte ištraukimo užklausą (PR), kuri buvo sujungta, ir pastebėjote, kad matomas jūsų asmeninis el. paštas, svarbu imtis veiksmų, kad jį paslėptumėte.

Šiame vadove išnagrinėsime įvairius būdus, kaip pašalinti arba paslėpti jūsų el. pašto adresą, kad jis nebūtų viešai rodomas, sujungus PR. Taip pat aptarsime, ar prižiūrėtojai turi galimybę keisti įsipareigojimų informaciją ir kaip efektyviai pakeisti jūsų įsipareigojimus.

komandą apibūdinimas
git filter-branch Perrašo įsipareigojimų istoriją, kad pakeistų autorių ir įpareigojimo informaciją „Git“ saugykloje.
export GIT_AUTHOR_NAME Nustato filtro atšakos operacijos metu perrašomų įsipareigojimų autoriaus vardą.
export GIT_AUTHOR_EMAIL Nustato autoriaus el. pašto adresą įsipareigojimams, kurie perrašomi atliekant filtro šakos operaciją.
wget Atsisiunčiami failai iš interneto, naudojami čia atsisiųsti BFG Repo-Cleaner įrankį.
bfg-1.13.0.jar Java archyvo failas, skirtas BFG Repo-Cleaner, kuris supaprastina saugyklos istorijos valymo procesą.
--replace-text BFG Repo-Cleaner komanda, skirta pakeisti konkretų tekstą (el. pašto adresus) saugyklos istorijoje.
git reflog expire Baigiasi įrašų galiojimo laikas, o tai naudinga norint išvalyti nuorodas į perrašytą istoriją.
git gc --prune=now Atlieka šiukšlių išvežimą ir iš karto genimi nepasiekiamus objektus, naudojami perrašius istoriją.
git commit --amend Pakeičia naujausią įsipareigojimą nauja informacija apie autorių arba įsipareigojimo turinio pakeitimus.

Asmeninio el. pašto pašalinimas iš „Git Commits“.

Scenarijai padėjo pašalinti asmeninę el. pašto informaciją iš „Git“ įsipareigojimų po to, kai buvo sujungta ištraukimo užklausa. Pirmasis scenarijus naudoja git filter-branch perrašyti įsipareigojimų istoriją. Ši komanda kartojasi per kiekvieną patvirtinimą, tikrindama, ar autoriaus arba įgaliotojo el. pašto adresas sutampa su senuoju el. Jei taip, jis pakeičiamas nauju, anoniminiu el. paštu. Perrašius įvykdymo istoriją, norint atnaujinti nuotolinę saugyklą, reikia priverstinio paspaudimo. The export GIT_AUTHOR_EMAIL ir export GIT_COMMITTER_EMAIL Komandos čia yra labai svarbios siekiant užtikrinti, kad perrašytuose įsipareigojimuose būtų teisinga el. pašto informacija.

Antrasis scenarijus svertų BFG Repo-Cleaner, kuri yra paprastesnė ir greitesnė filtravimo šakos alternatyva. Naudodami --replace-text komandą, BFG gali pakeisti visus senojo el. pašto egzempliorius nauju per visą saugyklos istoriją. Po pakeitimo scenarijus atlieka šiukšlių surinkimą git gc --prune=now kad išvalytumėte visus likusius duomenis. Trečiasis scenarijus skirtas pakeisti naujausią įsipareigojimą git commit --amend, kuri leidžia greitai pakeisti autoriaus informaciją neperrašant visos istorijos.

„Git Filter-Branch“ naudojimas įsipareigojimų istorijai perrašyti

„Shell Scripting“ naudojimas su „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/*'

Naudokite BFG Repo-Cleaner, kad būtų lengviau pašalinti el

Java naudojimas su 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

Paskutinio įsipareigojimo dėl el. pašto keitimo pakeitimas

„Git“ komandinės eilutės naudojimas paprastam pakeitimui

# 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

Privatumo užtikrinimas sujungus ištraukimo užklausą

Kitas aspektas, į kurį reikia atsižvelgti bandant pašalinti asmeninį el. laišką iš „Git“ įsipareigojimų, yra naudojimas GitHub’s personal email settings. Sukonfigūravę „Git“ klientą naudoti privatų „GitHub“ pateiktą el. pašto adresą, galite išvengti tikrojo el. pašto adreso atskleidimo ateityje. Tai galima padaryti nustačius savo el. pašto formatą username@users.noreply.github.com. Be to, „GitHub“ nustatymuose įjungus el. pašto privatumą užtikrinama, kad jūsų privatus el. paštas bus naudojamas žiniatinklio „Git“ operacijoms.

Įsipareigojimų, kurie jau buvo perkelti ir sujungti, „GitHub“ prižiūrėtojai turi ribotą teisę keisti istorinius įsipareigojimų duomenis. Tačiau jie gali padėti įgyvendindami saugyklos politiką, kuri skatina arba reikalauja, kad bendradarbiai naudotų privačius el. Ekstremaliais atvejais jie gali padėti pašalinti neskelbtinus duomenis, tačiau tai paprastai apima istorijos perrašymą, o tai gali turėti įtakos visiems bendraautoriams.

Dažnai užduodami klausimai apie el. pašto privatumą sistemoje „Git Commits“.

  1. Kaip galiu neleisti, kad mano el. paštas būtų atskleistas būsimų įsipareigojimų metu?
  2. Nustatykite savo el username@users.noreply.github.com „Git“ konfigūracijoje.
  3. Ar galiu pakeisti jau išsiųstų įsipareigojimų el. paštą?
  4. Taip, galite naudoti git filter-branch arba BFG Repo-Cleaner Norėdami perrašyti įsipareigojimų istoriją ir pakeisti el.
  5. Koks yra lengviausias būdas paslėpti savo el. paštą būsimų įsipareigojimų metu?
  6. Sukonfigūruokite „GitHub“ paskyrą, kad galėtumėte naudoti privatų el. paštą, ir nustatykite „Git“ kliento el. pašto adresą username@users.noreply.github.com.
  7. Ar įsipareigojimo pakeitimas pakeičia jo istoriją?
  8. taip, git commit --amend pakeičia naujausią įsipareigojimą, kurį galima priverstinai stumti norint atnaujinti saugyklą.
  9. Ar saugyklos prižiūrėtojai gali pakeisti mano įsipareigojimo informaciją?
  10. Prižiūrėtojai turi ribotas galimybes keisti įsipareigojimų istoriją, tačiau gali taikyti privatumo politiką būsimiems įsipareigojimams.
  11. Ar saugu perrašyti įsipareigojimų istoriją?
  12. Istorijos perrašymas gali turėti įtakos bendradarbiavimui, todėl tai turėtų būti daroma atsargiai, geriausia kontroliuojamoje aplinkoje.
  13. Koks yra jėgos stūmimo pokyčių poveikis?
  14. Priverstinis stūmimas gali perrašyti istoriją, o tai gali suklaidinti bendradarbius, todėl prieš tai darydami aiškiai bendraukite.
  15. Ar el. pašto privatumas gali būti užtikrintas visoje organizacijoje?
  16. Taip, „GitHub“ organizacijos gali nustatyti politiką ir naudoti tokius įrankius kaip pre-commit hooks pašto privatumui užtikrinti.
  17. Kas yra kabliukai prieš įsipareigojimą?
  18. Išankstinio patvirtinimo kabliukai yra scenarijai, kurie paleidžiami prieš sukuriant įsipareigojimą, užtikrinant, kad jis atitiktų tam tikrus kriterijus, pvz., naudojant privatų el. laišką.

Paskutinės mintys apie el. pašto privatumą sistemoje „Git Commits“.

Labai svarbu apsaugoti savo asmeninę informaciją, ypač kai prisidedate prie viešųjų saugyklų. Sukonfigūravę „Git“ nustatymus, kad būtų naudojamas privatus adresas, ir naudojant tokius įrankius kaip git filter-branch ir BFG Repo-Cleaner, galite efektyviai pašalinti asmeninius duomenis iš įsipareigojimų istorijos. Nors saugyklų prižiūrėtojai turi ribotas galias keisti įsipareigojimo informaciją, jie gali palaikyti privatumo praktiką. Kad išvengtumėte painiavos, visada praneškite apie bet kokius istorijos perrašymus su savo komanda. Naudodami šiuos metodus galite išlaikyti savo privatumą ir prisidėti prie atvirojo kodo projektų.