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
İ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-edit
ekleyerek 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.
C ve int atom Okur Yazar...
biri için git diff taahhüt...
Ng vardır düğüm şablonu ile değiştirin...
Dinamik UİCollectionView neden düzeni ...
SVN sil sonra geri almayı taahhüt...