E-mail adatainak védelme a GitHubon
Személyes e-mailjei közzététele a GitHub commitokban adatvédelmi aggályokat jelenthet, különösen, ha nyilvános adattárakon dolgozik. Ha megnyitott egy lehívási kérelmet (PR), amelyet egyesítettek, és észrevette, hogy személyes e-mailje látható, fontos, hogy tegyen lépéseket annak elrejtésére.
Ebben az útmutatóban különféle módszereket fogunk megvizsgálni, amelyek segítségével eltávolíthatja vagy kitakarhatja e-mail-címét a nyilvánosság elől, miután egy PR-t egyesítettek. Azt is megvitatjuk, hogy a fenntartók képesek-e megváltoztatni a kötelezettségvállalási információkat, és hogyan módosíthatják hatékonyan a kötelezettségvállalásokat.
Parancs | Leírás |
---|---|
git filter-branch | Átírja a véglegesítési előzményeket, hogy módosítsa a szerzőt és a véglegesítési információkat a Git-lerakatban. |
export GIT_AUTHOR_NAME | Beállítja a szerző nevét a szűrő-elágazás műveletben átírandó commitokhoz. |
export GIT_AUTHOR_EMAIL | Beállítja a szerzői e-mail-címet a szűrő-elágazás műveletben átírandó véglegesítésekhez. |
wget | Fájlokat tölt le az internetről, és itt töltheti le a BFG Repo-Cleaner eszközt. |
bfg-1.13.0.jar | Java archív fájl a BFG Repo-Cleanerhez, amely leegyszerűsíti a lerakatelőzmények tisztításának folyamatát. |
--replace-text | A BFG Repo-Cleaner parancs bizonyos szövegek (e-mail címek) cseréjéhez a lerakatelőzményekben. |
git reflog expire | Lejár a bejegyzések a reflogban, ami hasznos az átírt történelemre való hivatkozások tisztításához. |
git gc --prune=now | Szemetgyűjtést hajt végre, és azonnal levágja az elérhetetlen objektumokat, amelyeket az előzmények átírása után használnak fel. |
git commit --amend | Módosítja a legutóbbi véglegesítést új szerzői adatokkal vagy a véglegesítés tartalmának módosításával. |
Személyes e-mailek eltávolítása a Git Commits szolgáltatásból
A szkriptek segítséget nyújtottak a személyes e-mail-adatok eltávolításában a Git-commits-ból, miután egy lekérési kérelmet egyesítettek. Az első szkript használ git filter-branch átírni az elkövetési történelmet. Ez a parancs ismétlődik minden véglegesítésen, és ellenőrzi, hogy a szerző vagy a megbízó e-mail-címe megegyezik-e a régi e-mail-címmel. Ha igen, akkor lecseréli az új, névtelen e-mailre. A véglegesítési előzmények átírása után kényszernyomásra van szükség a távoli tároló frissítéséhez. A export GIT_AUTHOR_EMAIL és export GIT_COMMITTER_EMAIL A parancsok itt kulcsfontosságúak annak biztosításához, hogy az újraírt véglegesítések megfelelő e-mail-információkkal rendelkezzenek.
A második szkript kihasználja BFG Repo-Cleaner, ami a filter-elágazás egyszerűbb és gyorsabb alternatívája. Használatával a --replace-text paranccsal, a BFG lecserélheti a régi e-mail összes példányát az újra a lerakatelőzmények során. A csere után a szkript szemétgyűjtést hajt végre git gc --prune=now hogy törölje a maradék adatokat. A harmadik szkript a legutóbbi véglegesítés módosítására összpontosít git commit --amend, amely lehetővé teszi a szerző információinak gyors megváltoztatását a teljes előzmény átírása nélkül.
A Git Filter-Branch használata a véglegesítési előzmények újraírására
Shell Scripting használata Git-tel
#!/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/*'
A BFG Repo-Cleaner használata az e-mailek egyszerűbb eltávolításához
Java használata a BFG Repo-Cleanerrel
# 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
Az e-mail módosítás utolsó kötelezettségének módosítása
A Git parancssor használata az egyszerű módosításhoz
# 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
Adatvédelem biztosítása a lehívási kérelem egyesítése után
Egy másik szempont, amelyet figyelembe kell venni, amikor megpróbálja eltávolítani a személyes e-maileket a Git commits-ból, a használata GitHub’s personal email settings. Ha beállítja Git-kliensét a GitHub által biztosított privát e-mail-cím használatára, elkerülheti, hogy valódi e-mailjei megjelenjenek a jövőbeni véglegesítés során. Ezt megteheti az e-mail formátum beállításával username@users.noreply.github.com. Ezenkívül az e-mailek adatvédelmének engedélyezése a GitHub beállításaiban biztosítja, hogy privát e-mailjeit webalapú Git-műveletekhez használják fel.
A már eltolt és összevont véglegesítések esetében a GitHub karbantartói korlátozottan képesek módosítani a korábbi véglegesítési adatokat. Segíthetnek azonban olyan adattárházirendek betartatásával, amelyek arra ösztönzik vagy megkövetelik a közreműködőket, hogy privát e-maileket használjanak. Szélsőséges esetekben segíthetnek érzékeny adatok eltávolításában, de ez általában az előzmények átírásával jár, ami minden közreműködőt érinthet.
Gyakran ismételt kérdések az e-mailek adatvédelméről a Git Commits szolgáltatásban
- Hogyan akadályozhatom meg, hogy e-mailjeim nyilvánosságra kerüljenek a jövőbeni kötelezettségvállalások során?
- Állítsa be az e-mail címét username@users.noreply.github.com a Git konfigurációjában.
- Módosíthatom az e-mail-címet a már elküldött commitokhoz?
- Igen, használhatod git filter-branch vagy BFG Repo-Cleaner a véglegesítési előzmények átírásához és az e-mail módosításához.
- Mi a legegyszerűbb módja annak, hogy elrejtsem az e-mail címemet a jövőbeni véglegesítések során?
- Konfigurálja GitHub-fiókját privát e-mail használatára, és állítsa be a Git-kliens e-mail-címét erre username@users.noreply.github.com.
- Megváltoztatja-e egy kötelezettségvállalás módosítása annak történetét?
- Igen, git commit --amend megváltoztatja a legutóbbi véglegesítést, amely kényszerített lenyomásával frissíthető a tárhelyen.
- Módosíthatják a lerakatkarbantartók a véglegesítési adataimat?
- A fenntartók korlátozottan módosíthatják a kötelezettségvállalási előzményeket, de érvényesíthetik az adatvédelmi szabályzatot a jövőbeli commiting során.
- Biztonságos-e átírni a kötelezettségvállalási előzményeket?
- Az előzmények újraírása hatással lehet az együttműködésre, ezért óvatosan kell végezni, ideális esetben ellenőrzött környezetben.
- Milyen hatással vannak az erőltetett változtatások?
- A kényszernyomás felülírhatja az előzményeket, ami megzavarhatja az együttműködőket, ezért kommunikáljon világosan, mielőtt ezt megtenné.
- Az e-mailek adatvédelme érvényesíthető az egész szervezeten?
- Igen, a GitHub-szervezetek beállíthatnak házirendeket és használhatnak olyan eszközöket, mint pl pre-commit hooks az e-mailek adatvédelmének biztosítása érdekében.
- Mik azok a pre-commit horgok?
- A véglegesítés előtti hoook olyan szkriptek, amelyek a véglegesítés létrehozása előtt futnak le, biztosítva, hogy megfeleljen bizonyos feltételeknek, például privát e-mail használata.
Utolsó gondolatok a Git Commits e-mail adatvédelméről
Személyes adatainak védelme elengedhetetlen, különösen a nyilvános adattárakba való hozzájáruláskor. Úgy konfigurálja a Git beállításait, hogy privát címet használjon, és olyan eszközöket használ, mint pl git filter-branch és BFG Repo-Cleaner, hatékonyan eltávolíthatja a személyes adatokat az elkövetési előzményekből. Míg az adattár-karbantartóknak korlátozott hatalmuk van a véglegesítési adatok megváltoztatására, támogathatják az adatvédelmi gyakorlatokat. A félreértések elkerülése érdekében mindig közölje csapatával az előzmények átírását. Ezekkel a módszerekkel megőrizheti magánéletét, miközben hozzájárul a nyílt forráskódú projektekhez.