Bir commit’teki e-postayı gerçekte ne kontrol eder?
Bir commit’in yazar e-postası, commit’i oluşturan makinedeki Git yapılandırması tarafından belirlenir, GitHub profilinizde görünen e-posta tarafından değil. GitHub profil e-postanız bildirimler, hesap kurtarma ve bazı web arayüzü işlemleri için kullanılan ayrı bir ayardır. Terminalden commit yapıyorsanız, commit nesnesine yazılan adres yerel user.email değerinizden gelir. Bütün mesele bu ayrımdır: profil e-postanızı değiştirmek gelecekteki komut satırı commit’lerine hiçbir şey yapmaz ve yerel Git yapılandırmanızı değiştirmek zaten push edilmiş commit’lere hiçbir şey yapmaz.
Git yapılandırması, komut satırından yapılan gelecekteki commit’lere eklenen e-postayı kontrol eder. Kaynak
Herhangi bir şeyi değiştirmeden önce neyi denetlediğinizi anlayın. E-postanızı GitHub’dan silmeye çalışmıyorsunuz. Bundan sonra oluşturacağınız commit’lerde hangi adresin görünmesi gerektiğine ve depolarınızdan herhangi birinin hâlâ atıf veya araçlar için eski adrese bağlı olup olmadığına karar vermeye çalışıyorsunuz.
Adım 1: Commit’lerinizin şu anda taşıdığı kimliği inceleyin
Son commit’lerinizin gerçekte ne içerdiğine bakarak başlayın. Sahibi olduğunuz bir depoda, son birkaç commit için yazar ve committer e-posta alanlarını gösteren bir log çalıştırın. Amaç, adres dizesini tam olarak görmek, henüz hassas olup olmadığına karar vermek değil. Bunu komut satırından push yaptığınız her depoda yapın, çünkü yerel yapılandırma depo başına farklılık gösterebilir.
Ardından, Git’in o depoda kullanacağı etkin yapılandırmayı kontrol edin. Git yapılandırmayı birden çok kapsamdan çözer ve depo düzeyindeki bir değer genel bir değeri geçersiz kılar. Tanımadığınız bir adres görürseniz, bu depoya özel bir ayardan, dahil edilen bir yapılandırma dosyasından veya kabuğunuzdaki bir ortam değişkeninden gelebilir. Düzenlemeden önce bulduklarınızı kaydedin; yeniden üretemediğiniz bir denetim, denetim değildir.
Adım 2: İki ayarı kafanızda ayırın
Profil ayarı ile commit ayarını ayrı tutmak için bu karar tablosunu kullanın. Kendi hesabınızda ve terminalinizde doğrulayabileceğiniz genel mekaniği açıklar; belirli menü etiketleri veya güncel arayüz yolları iddia etmez.
| Soru | Neyle yönetilir | Değiştirmek neyi etkiler | Neyi etkilemez |
|---|---|---|---|
| GitHub profilimde hangi e-posta görünür? | GitHub hesap e-posta ayarları | Profil görünümü, bildirimler, hesap kurtarma | Yerel olarak oluşturduğunuz commit’lerdeki yazar e-postası |
| Yeni bir commit’e hangi e-posta yazılır? | Yerel Git user.email yapılandırması | O makineden veya depodan yapılan gelecekteki commit’ler | Zaten oluşturulmuş veya push edilmiş commit’ler |
| Noreply’a geçersem eski commit’ler değişir mi? | Hiçbir otomatik şey | Hiçbir şey | Mevcut commit nesneleri orijinal yazar e-postasını korur |
| Gelecekteki herkese açık commit’lerden e-postamı gizleyebilir miyim? | Yerel Git yapılandırması ve bir noreply adresi | Değişiklikten sonra yazdığınız yeni commit’ler | Geçmiş, çatallar ve başka yerlerdeki önbellek kopyaları |
Tablodan çıkan pratik sonuç: iki bağımsız kolunuz var. Endişeniz gelecekteki push’larsa commit kolunu çekin. Profil kolunun bu işi yapmasını beklemeyin.
Adım 3: Bir noreply adresi seçin ve yerel olarak yapılandırın
GitHub bir noreply adresi seçeneği sunar. Tam biçim GitHub tarafından belgelenmiştir ve zamanla değişebilir, bu yüzden adresi bir blog yazısından değil kendi hesap ayarlarınızdan kopyalayın. Aldıktan sonra, iş akışınıza uyan kapsamda commit e-postası olarak ayarlayın.
Güvenli bir sıra:
- GitHub tarafından sağlanan noreply adresinizi hesap ayarlarınızdan kopyalayın.
- Kapsama karar verin: makinedeki her depo kullanacaksa genel olarak ayarlayın veya farklı bir kimlik bekleyen projelere katkıda bulunuyorsanız depo başına ayarlayın.
- Ayarı seçilen kapsamda
git configile uygulayın. - Bir deneme dalında test commit’i oluşturun ve push etmeden önce yazar e-postasını inceleyin.
- Yalnızca test commit’i noreply adresini gösterdikten sonra push edin.
GitHub bir noreply adresi seçeneği sunar; yapılandırılmış adresi değiştirmek mevcut commit’leri yeniden yazmaz. Kaynak
İnsanların gözden kaçırdığı ikinci nokta budur. Noreply’a geçmek ileriye dönük bir kontroldür. Mevcut commit’leri yeniden yazmaz ve eski adresinizi zaten herkese açık olan commit nesnelerinden kaldırmaz. Bir depo çatallanmış veya yansılanmışsa, bu kopyalar bugün ne yapılandırırsanız yapılandırın orijinal commit verilerini korur.
Adım 4: Web arayüzü ve araç davranışını ayrı ayrı kontrol edin
GitHub web arayüzü üzerinden veya botlar ve entegrasyonlar tarafından oluşturulan commit’ler, yerel terminalinizden farklı bir kimlik yolu kullanabilir. Yerel bir yapılandırma değişikliğinin bir depoya giren her commit’i kapsadığını varsaymayın. Farklı kaynaklardan gelen commit’lerdeki yazar alanlarını inceleyin ve hangilerini doğrudan kontrol ettiğinizi not edin. Kontrol etmediğiniz entegrasyonlar için dürüst cevap, onların commit kimliğini dizüstü bilgisayarınızdan ayarlayamayacağınızdır; yalnızca o entegrasyonu kullanmaya devam edip etmeyeceğinize karar verebilirsiniz.
Adım 5: Eski geçmiş hakkında ne yapacağınıza karar verin
Üç gerçekçi seçeneğiniz var ve hiçbiri “eski ifşayı yok et” değil.
| Seçenek | Ne yapar | Maliyet ve sınırlar |
|---|---|---|
| Geçmişi olduğu gibi bırak | Klonları veya referansları bozma riski yok | Eski commit’ler orijinal yazar e-postasını korur |
| Kendi deponuzda geçmişi yeniden yaz | O depoda ileriye dönük commit nesnelerini değiştirir | Yeniden yazma yıkıcıdır, çatallara veya yansılara ulaşmaz ve çoğu kullanıcı için kapsam dışıdır |
| İfşa olan adresi kaldır veya döndür | Adres hâlâ etkinse gelecekteki ifşayı azaltır | Zaten içeren commit’leri değiştirmez |
Çoğu okuyucu için doğru hamle birinci veya üçüncüdür: adresi yeni commit’lere eklemeyi bırakın ve eski commit’leri kalıcı olarak herkese açık kabul edin. İfşa olan adres hâlâ oturum açma veya kurtarma için kullandığınız bir adresse, hesaba hiç bağlı kalıp kalmaması gerektiğini düşünün. Bu bir hesap güvenliği kararıdır, Git yapılandırması kararı değil.
Yaygın hatalar
- Profil e-postasını değiştirip commit’lerin düzeldiğini varsaymak. Profil ayarı ve commit kimliği ayrıdır. Yerel Git yapılandırmasını değiştirene kadar gelecekteki terminal commit’leri eski adresi taşımaya devam eder.
- Depo geçersiz kılmalarını kontrol etmeden noreply’ı genel olarak ayarlamak. Depoya özel bir
user.emailgenel değerinizi geçersiz kılar. Push yaptığınız her depoyu denetleyin. - Test commit’ini herkese açık bir dala push etmek. Push etmeden önce yazar e-postasını bir deneme dalında veya yerel bir log ile doğrulayın.
- Noreply geçişinin geçmişi temizlediğine inanmak. Mevcut commit’leri yeniden yazmaz ve çatallara, yansılara veya önbellek kopyalarına ulaşamaz.
- Her commit kaynağının kontrolünüzde olduğunu varsaymak. Web arayüzü commit’leri ve entegrasyon commit’leri farklı kimlikler kullanabilir; varsaymak yerine kontrol edin.
- Düzenlenmiş profili silme olarak görmek. Profilinizin görüntülediği şeyi değiştirmek, depolanan verileri silmez veya commit nesnelerini değiştirmez.
Kendi ayak izinizi korumak
Commit e-postası dar bir kanaldır. Herkese açık ayak iziniz, o adrese bağlı diğer platformlardaki kullanıcı adlarını ve profilleri de içerir. Bir adresi herkese açık bir yerde göründüğü için denetliyorsanız, faydalı sonraki adım hangi herkese açık hesapların onunla ilişkili olduğunu görmektir. TruthsSeek’in bir e-posta adresine bağlı hesapları nasıl bulacağınız rehberi bu inceleme sürecini adım adım anlatır ve /find/github/ adresindeki GitHub arama sayfası bilinen bir kullanıcı adını kontrol etmek için bir başlangıç noktasıdır. TruthsSeek’in ele aldığı uygulama TraceSeek, bir kullanıcı adını 3.000+ platformda kontrol eder ve ilk taramayı ücretsiz sunar; ürün, bir taramanın 20-30 saniye sürdüğünü belirtir. Bu araçlar herkese açık eşleşmeleri sahiplik kanıtı olarak değil, ipucu olarak ortaya çıkarır ve platform ayarlarını değiştirmez veya özel kayıtları ifşa etmez. Zaten herkese açık olanı haritalamak için kullanın, ardından yapılandırma değişikliklerini platformların kendisinde yapın.
Gerçekçi bir rutin: yerel Git kimliğinizi bir kez düzeltin, bir test commit’i ile doğrulayın, ardından yeni araçlardan veya makinelerden gelen commit’lerdeki yazar alanlarını düzenli olarak yeniden kontrol edin. Push edilen her commit’i kalıcı herkese açık veri olarak görün, çünkü pratikte genellikle öyledir.
Temel gerçekler
- Git yapılandırması, komut satırından yapılan gelecekteki commit’lere eklenen e-postayı kontrol eder.
- GitHub bir noreply adresi seçeneği sunar; yapılandırılmış adresi değiştirmek mevcut commit’leri yeniden yazmaz.
- GitHub profil e-postası ayarı ile yerel Git commit e-postası ayarı, farklı etkileri olan ayrı kontrollerdir.
- TraceSeek kullanıcı adlarını 3.000+ platformda kontrol eder ve ilk taramayı ücretsiz sunar; ürün tarafından belirtilen tarama süresi 20-30 saniyedir.
- Herkese açık kullanıcı adı eşleşmeleri ipucudur, hesap sahipliğinin kanıtı değildir.