Kuidas eemaldada Git Commitsist isiklik e-kiri

Kuidas eemaldada Git Commitsist isiklik e-kiri
Kuidas eemaldada Git Commitsist isiklik e-kiri

Oma e-posti privaatsuse kaitsmine GitHubis

Isikliku meili avaldamine GitHubi kohustustes võib olla privaatsusprobleem, eriti kui töötate avalike hoidlate kallal. Kui olete avanud tõmbetaotluse (PR), mis on liidetud, ja märkasite, et teie isiklik e-kiri on nähtav, on oluline võtta meetmeid selle peitmiseks.

Selles juhendis uurime erinevaid meetodeid teie e-posti aadressi avalikust vaatest eemaldamiseks või varjamiseks pärast PR-i ühendamist. Arutame ka selle üle, kas hooldajatel on võimalik kohustuste teavet muuta ja kuidas teie kohustusi tõhusalt muuta.

Käsk Kirjeldus
git filter-branch Kirjutab ümber sidumisajaloo, et muuta Giti hoidlas olevat autori- ja kinnistamisteavet.
export GIT_AUTHOR_NAME Määrab filtri haru operatsioonis ümberkirjutatavate kohustuste autori nime.
export GIT_AUTHOR_EMAIL Määrab filtriharu operatsioonis ümberkirjutatavate kohustuste autori e-posti aadressi.
wget Laadib alla failid Internetist, mida kasutatakse siin BFG Repo-Cleaneri tööriista allalaadimiseks.
bfg-1.13.0.jar Java arhiivifail BFG Repo-Cleaneri jaoks, mis lihtsustab hoidla ajaloo puhastamise protsessi.
--replace-text BFG Repo-Cleaneri käsk konkreetse teksti (e-posti aadresside) asendamiseks hoidla ajaloos.
git reflog expire Aegub reflogi kirjed, mis on kasulik ümberkirjutatud ajaloo viidete puhastamiseks.
git gc --prune=now Korraldab prügi ja pügab kättesaamatuid objekte koheselt, kasutatakse pärast ajaloo ümberkirjutamist.
git commit --amend Täidab viimast kinnistamist uue autoriteabe või muudatustega sidumise sisus.

Isikliku meili eemaldamine Git Commitsist

Skriptid aitasid pärast tõmbetaotluse ühendamist isikliku e-posti teabe eemaldamisel Giti kohustustest. Esimene skript kasutab git filter-branch toimepanemise ajalugu ümber kirjutada. See käsk kordub iga sissekande kaudu, kontrollides, kas autori või volitaja e-posti aadress vastab vanale meilile. Kui see nii on, asendab see selle uue anonüümseks muudetud meiliga. Pärast kinnistamisajaloo ümberkirjutamist on kaughoidla värskendamiseks vaja jõutõuget. The export GIT_AUTHOR_EMAIL ja export GIT_COMMITTER_EMAIL käsud on siin üliolulised tagamaks, et ümberkirjutatud kohustustel on õige meiliteave.

Teine skript kasutab ära BFG Repo-Cleaner, mis on lihtsam ja kiirem alternatiiv filter-harule. Kasutades --replace-text BFG saab asendada kõik vana meili eksemplarid uuega kogu hoidla ajaloos. Pärast asendamist teostab skript prügikoristust git gc --prune=now jääkandmete puhastamiseks. Kolmas skript keskendub viimaste tingimuste muutmisele git commit --amend, mis võimaldab kiiresti muuta autoriteavet ilma kogu ajalugu ümber kirjutamata.

Git Filter-Branchi kasutamine kohustuste ajaloo ümberkirjutamiseks

Shelli skriptimise kasutamine koos Gitiga

#!/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-Cleaneri kasutamine meilide lihtsamaks eemaldamiseks

Java kasutamine koos BFG Repo-Cleaneriga

# 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

E-posti muutmise viimase kohustuse muutmine

Giti käsurea kasutamine lihtsaks muutmiseks

# 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

Privaatsuse tagamine pärast tõmbamistaotluse ühendamist

Veel üks aspekt, mida Giti kohustustest isiklike meilide eemaldamisel arvestada, on selle kasutamine GitHub’s personal email settings. Kui seadistate oma Git-kliendi kasutama GitHubi pakutavat privaatset e-posti aadressi, saate vältida oma tegeliku meilisõnumi paljastamist tulevastes kohustustes. Seda saab teha, määrates oma e-posti vormingu username@users.noreply.github.com. Lisaks tagab e-posti privaatsuse lubamine GitHubi seadetes, et teie privaatset e-posti kasutatakse veebipõhiste Giti toimingute jaoks.

Juba edasi lükatud ja liidetud kohustuste puhul on GitHubi hooldajatel piiratud volitused ajalooliste kohustuste andmete muutmiseks. Siiski võivad nad aidata, kui jõustavad hoidlapoliitikad, mis julgustavad või nõuavad kaasautoritel privaatsete e-kirjade kasutamist. Äärmuslikel juhtudel võivad need aidata eemaldada tundlikke andmeid, kuid see hõlmab tavaliselt ajaloo ümberkirjutamist, mis võib mõjutada kõiki kaastöölisi.

Korduma kippuvad küsimused e-posti privaatsuse kohta Git Commitsis

  1. Kuidas saan vältida oma e-kirjade avalikustamist tulevaste kohustuste ajal?
  2. Määra oma e-posti aadress username@users.noreply.github.com teie Giti konfiguratsioonis.
  3. Kas ma saan juba surutud kohustuste e-posti aadressi muuta?
  4. Jah, võite kasutada git filter-branch või BFG Repo-Cleaner kohustuste ajaloo ümberkirjutamiseks ja e-posti muutmiseks.
  5. Mis on lihtsaim viis oma e-posti varjamiseks tulevastes kohustustes?
  6. Seadistage oma GitHubi konto privaatse e-posti kasutamiseks ja määrake oma Giti kliendi e-posti aadress username@users.noreply.github.com.
  7. Kas kohustuse muutmine muudab selle ajalugu?
  8. Jah, git commit --amend muudab viimast kinnistamist, mida saab hoidla värskendamiseks sundida.
  9. Kas hoidla hooldajad saavad minu sissekandmisteavet muuta?
  10. Hooldajatel on piiratud võimalus muuta kohustuste ajalugu, kuid nad saavad tulevaste kohustuste jaoks privaatsuspoliitikat jõustada.
  11. Kas kohustuste ajaloo ümberkirjutamine on ohutu?
  12. Ajaloo ümberkirjutamine võib koostööd mõjutada, seega tuleks seda teha ettevaatlikult, ideaaljuhul kontrollitud keskkonnas.
  13. Milline on sunniviisiliste muudatuste mõju?
  14. Sundsurumine võib ajalugu üle kirjutada, mis võib kaastöötajaid segadusse ajada, seega suhtlege enne seda selgelt.
  15. Kas meilide privaatsust saab jõustada kogu organisatsioonis?
  16. Jah, GitHubi organisatsioonid saavad määrata eeskirju ja kasutada selliseid tööriistu nagu pre-commit hooks e-posti privaatsuse tagamiseks.
  17. Mis on sidumiseelsed konksud?
  18. Kinnitamiseelsed konksud on skriptid, mis käitatakse enne sissekande loomist, tagades, et see vastab teatud kriteeriumidele, näiteks privaatse meili kasutamine.

Viimased mõtted e-posti privaatsuse kohta Git Commitsis

Isikuandmete kaitsmine on oluline, eriti avalikesse hoidlatesse panustamisel. Konfigureerides oma Giti seaded privaatse aadressi kasutamiseks ja kasutades selliseid tööriistu nagu git filter-branch ja BFG Repo-Cleaner, saate isikuandmeid toimepanemise ajaloost tõhusalt eemaldada. Kuigi hoidlate hooldajatel on piiratud volitused andmete muutmiseks, saavad nad toetada privaatsuspõhimõtteid. Segaduste vältimiseks teavitage alati oma meeskonnaga ajaloo ümberkirjutamisest. Nende meetodite abil saate säilitada oma privaatsuse, panustades samal ajal avatud lähtekoodiga projektidesse.