Kuinka poistaa henkilökohtainen sähköposti Git Commitsista

Kuinka poistaa henkilökohtainen sähköposti Git Commitsista
Kuinka poistaa henkilökohtainen sähköposti Git Commitsista

Sähköpostisi yksityisyyden suojaaminen GitHubissa

Henkilökohtaisen sähköpostisi paljastaminen GitHub-sitoumuksissa voi olla tietosuojaongelma, varsinkin kun työskentelet julkisten tietovarastojen parissa. Jos olet avannut yhdistetyn vetopyynnön (PR) ja huomasit henkilökohtaisen sähköpostisi näkyvän, on tärkeää ryhtyä toimiin sen piilottamiseksi.

Tässä oppaassa tutkimme erilaisia ​​tapoja poistaa tai peittää sähköpostiosoitteesi julkisesti sen jälkeen, kun PR on yhdistetty. Keskustelemme myös siitä, onko ylläpitäjillä kyky muuttaa sitoumustietoja ja miten voit muuttaa sitoumuksiasi tehokkaasti.

Komento Kuvaus
git filter-branch Kirjoittaa toimitushistorian uudelleen muuttaakseen tekijän ja sitoutujan tietoja Git-tietovarastossa.
export GIT_AUTHOR_NAME Asettaa tekijän nimen suodatinhaaratoiminnossa uudelleen kirjoitettaville toimituksille.
export GIT_AUTHOR_EMAIL Asettaa kirjoittajan sähköpostiosoitteen suodatinhaaratoiminnossa uudelleenkirjoitettaville sitoumuksille.
wget Lataa tiedostoja Internetistä, jota käytetään tästä lataamaan BFG Repo-Cleaner -työkalu.
bfg-1.13.0.jar Java-arkistotiedosto BFG Repo-Cleanerille, joka yksinkertaistaa arkiston historian puhdistusta.
--replace-text BFG Repo-Cleaner -komento korvaa tietyn tekstin (sähköpostiosoitteet) arkiston historiassa.
git reflog expire Vanhenee reflogin merkinnät, mikä on hyödyllistä siivottaessa viittauksia uudelleenkirjoitettuun historiaan.
git gc --prune=now Suorittaa jätteiden keräämisen ja karsii saavuttamattomat kohteet välittömästi, käytetään historian uudelleenkirjoituksen jälkeen.
git commit --amend Muuttaa viimeisintä sitoumusta uusilla tekijätiedoilla tai muutoksilla toimitussisältöön.

Henkilökohtaisen sähköpostin poistaminen Git Commitsista

Skriptit tarjosivat apua henkilökohtaisten sähköpostitietojen poistamiseen Git-sitoumuksista sen jälkeen, kun vetopyyntö on yhdistetty. Ensimmäinen skripti käyttää git filter-branch kirjoittaa sitoumushistorian uudelleen. Tämä komento toistuu jokaisen toimituksen läpi ja tarkistaa, vastaako kirjoittajan tai toimittajan sähköpostiosoite vanhaa sähköpostia. Jos näin tapahtuu, se korvaa sen uudella, anonymisoidulla sähköpostilla. Toimitushistorian uudelleenkirjoituksen jälkeen etävaraston päivittäminen edellyttää pakottamista. The export GIT_AUTHOR_EMAIL ja export GIT_COMMITTER_EMAIL komennot ovat tässä ratkaisevia sen varmistamiseksi, että uudelleenkirjoitetuissa toimituksissa on oikeat sähköpostitiedot.

Toinen skripti hyödyntää BFG Repo-Cleaner, joka on yksinkertaisempi ja nopeampi vaihtoehto suodatinhaaralle. Käyttämällä --replace-text -komento, BFG voi korvata kaikki vanhan sähköpostin esiintymät uudella koko arkistohistorian ajan. Korvauksen jälkeen skripti suorittaa roskienkeräyksen git gc --prune=now siivoamaan kaikki jäännöstiedot. Kolmas komentosarja keskittyy viimeisimmän sitoumuksen muuttamiseen git commit --amend, joka mahdollistaa nopeat muutokset kirjoittajatietoihin ilman koko historian uudelleenkirjoittamista.

Git Filter-Branchin käyttäminen toimitushistorian uudelleenkirjoittamiseen

Shell-komentosarjan käyttäminen Gitin kanssa

#!/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-Cleanerin käyttäminen sähköpostin poistamisen helpottamiseksi

Javaa käyttämällä 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

Viimeisen sähköpostimuutoksen sitoumuksen muuttaminen

Git-komentorivin käyttö Simple Amendille

# 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

Tietosuojan varmistaminen vetopyynnön yhdistämisen jälkeen

Toinen näkökohta, joka on otettava huomioon, kun yrität poistaa henkilökohtaista sähköpostia Git-sitoumuksista, on sen käyttö GitHub’s personal email settings. Määrittämällä Git-asiakasohjelmasi käyttämään GitHubin tarjoamaa yksityistä sähköpostiosoitetta voit välttää todellisen sähköpostisi paljastamisen tulevissa sitoumuksissa. Tämä voidaan tehdä asettamalla sähköpostisi muotoon username@users.noreply.github.com. Lisäksi sähköpostin yksityisyyden ottaminen käyttöön GitHubin asetuksissa varmistaa, että yksityistä sähköpostiasi käytetään verkkopohjaisiin Git-toimintoihin.

GitHubin ylläpitäjillä on rajoitettu valta muuttaa historiallisia sitoumustietoja jo siirrettyjen ja yhdistettyjen toimitusten osalta. He voivat kuitenkin auttaa panemalla täytäntöön arkistokäytännöt, jotka kannustavat tai vaativat avustajia käyttämään yksityisiä sähköposteja. Äärimmäisissä tapauksissa ne voivat auttaa poistamaan arkaluontoisia tietoja, mutta tämä edellyttää yleensä historian uudelleenkirjoittamista, mikä voi vaikuttaa kaikkiin osallistujiin.

Usein kysyttyjä kysymyksiä sähköpostin tietosuojasta Git Commitsissa

  1. Kuinka voin estää sähköpostini paljastumisen tulevissa sitoumuksissa?
  2. Aseta sähköpostiosoitteesi username@users.noreply.github.com Git-kokoonpanossasi.
  3. Voinko vaihtaa sähköpostiosoitetta jo tehtyjen sitoumusten osalta?
  4. Kyllä, voit käyttää git filter-branch tai BFG Repo-Cleaner kirjoittaaksesi toimitushistorian uudelleen ja vaihtaaksesi sähköpostiosoitetta.
  5. Mikä on helpoin tapa piilottaa sähköpostini tulevissa sitoumuksissa?
  6. Määritä GitHub-tilisi käyttämään yksityistä sähköpostia ja aseta Git-asiakkaasi sähköpostiosoite username@users.noreply.github.com.
  7. Muuttaako sitoumuksen muuttaminen sen historiaa?
  8. Joo, git commit --amend muuttaa viimeisintä vahvistusta, joka voidaan pakottaa arkiston päivittämiseksi.
  9. Voivatko tietovaraston ylläpitäjät muuttaa toimitustietojani?
  10. Ylläpitäjillä on rajalliset mahdollisuudet muuttaa toimitushistoriaa, mutta he voivat valvoa tietosuojakäytäntöjä tulevia sitoumuksia varten.
  11. Onko sitoumushistorian kirjoittaminen uudelleen turvallista?
  12. Historian uudelleenkirjoittaminen voi vaikuttaa yhteistyöhön, joten se tulee tehdä huolellisesti, mieluiten kontrolloidussa ympäristössä.
  13. Mikä on pakottavien muutosten vaikutus?
  14. Pakottaminen voi korvata historian, mikä saattaa hämmentää yhteistyökumppaneita, joten viesti selkeästi ennen kuin teet niin.
  15. Voiko sähköpostin tietosuojaa valvoa koko organisaatiossa?
  16. Kyllä, GitHub-organisaatiot voivat määrittää käytäntöjä ja käyttää työkaluja, kuten pre-commit hooks sähköpostin tietosuojan varmistamiseksi.
  17. Mitä ovat pre-commit-koukut?
  18. Pre-commit koukut ovat komentosarjoja, jotka suoritetaan ennen vahvistuksen luomista varmistaen, että se täyttää tietyt kriteerit, kuten yksityisen sähköpostin käyttäminen.

Viimeiset ajatukset sähköpostin tietosuojasta Git Commitsissa

Henkilökohtaisten tietojesi suojaaminen on välttämätöntä, varsinkin kun osallistut julkisiin tietovarastoihin. Määrittämällä Git-asetuksesi käyttämään yksityistä osoitetta ja käyttämällä työkaluja, kuten git filter-branch ja BFG Repo-Cleaner, voit tehokkaasti poistaa henkilökohtaiset tiedot sitoumushistoriasta. Vaikka arkiston ylläpitäjillä on rajoitettu valta muuttaa sitoumustietoja, he voivat tukea tietosuojakäytäntöjä. Varmista aina, että ilmoitat historian uudelleenkirjoituksista tiimisi kanssa sekaannusten välttämiseksi. Näillä menetelmillä voit säilyttää yksityisyytesi samalla kun osallistut avoimen lähdekoodin projekteihin.