SORU
15 NİSAN 2009, ÇARŞAMBA


Bir yazar Gıt taahhüt değiştirin

Okul bilgisayarına basit bir komut dosyası yazma ve Git (benim çubuk evde Bilgisayarımdan klonlanmış olduğunu bir repo) değişiklikleri yapıyordum. Birkaç tamamlandıktan sonra root kullanıcısı olarak işleyen bir şeyler olduğunu fark ettim.

Benim adım girer bu yazar değiştirmek için herhangi bir yolu var mı?

CEVAP
24 AĞUSTOS 2009, PAZARTESİ


İnteraktif Rebase Kullanarak

Yapabilirsin

git rebase -i -p <some HEAD before all of your bad commits>

Sonra mark senin kötü bütün "düzen" rebase dosyası olarak kaydeder Eğer siz de ilk taahhüt değiştirmek istiyorsanız, elle rebase dosyada ilk satır (diğer satırları biçimi izleyin) eklemek zorunda. Gıt her bir kayıt değiştirmek isterse o zaman yap

 git commit --amend --author "New Author Name <email@address.com>" 

ya açar, ve sonra o editör Düzenle kapat

git rebase --continue

rebase devam etmek.

Tamamen burada editör açılıyor --no-editekleyerek atlasak yani komut olacak:

git commit --amend --author "New Author Name <email@address.com>" --no-edit && \
git rebase --continue

Tek İşlemek

Ziyaretçi bazıları da belirtildiği gibi, eğer sadece en son değiştirmek istiyorsanız, taahhüt, rebase komutu gerekli değildir. Yap

 git commit --amend --author "New Author Name <email@address.com>"

Bu ismi belirtilen yazar değişecek, ama committer git config user.name git config user.email içinde yapılandırılan kullanıcı için ayarlanır. Eğer bir şey için committer ayarlamak istiyorsanız, bu yazar ve committer hem koyacaktır belirtin:

 git -c user.name="New Author Name" -c user.email=email@address.com commit --amend --reset-author

Birleştirme üzerine not Eder

Benim asıl tepki hafif bir kusur vardı. Eğer orada herhangi bir birleştirme tamamlar arasındaki mevcut HEAD <some HEAD before all your bad commits> git rebase dümdüz onları (ve bu arada, eğer kullandığınız GitHub pull istekleri var olacak bir ton birleştirme tamamlar tarih). Bu çok sık kurşun için çok farklı bir tarih olarak yinelenen değişiklikler olabilir "rebased"), ve en kötü durumda, yardımcı olmak git rebase sorduğun için çözmek zor birleştirme çatışmalar (ki olması kuvvetle muhtemel zaten çözülmüş birleştirme tamamlar). Çözüm geçmişinizi yapısı birleştirme koruyacak olan git rebase -p bayrağı kullanmaktır. Bu kılavuz için git rebase uyaran kullanarak -p -i yol sorunları, ama içinde BUGS bölüm yazıyor "Düzenleme tamamlar ve uygun sözcükler kullanmak onların commit iletileri gerektiğini iyi çalışıyor."

Yukarıdaki komut için -p ekledim. Sadece en son commit değiştiriyorsun durum, bu bir sorun değildir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • expertvillage

    expertvillag

    5 NİSAN 2006
  • JayzTwoCents

    JayzTwoCents

    26 AĞUSTOS 2012
  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008