2011-03-29 12 views

cevap

14

tek bir yazar tarafından tüm kaydedilmesini bulun ve bir dosyaya kendi karma kaydedin:

git log --author=<author> --format=%H > /tmp/commit-by-x 

iki kez uygulamak istemiyorum beri en bu özel yazar taahhüt içermez yeni bir şube oluşturun. Bunun için, yeni bir boş şube oluşturabilirsiniz:

git checkout --orphan commits-by-x 

(eski yenisine doğru) o yazarın bütün kaydedilmesini Kiraz-almak: Bu değişiklikleri başarılı olmak istiyorsanız,

tac /tmp/commit-by-x | while read sha; do git cherry-pick ${sha}; done 

Açıkçası Yazar-x tarafından tanıtılan çok lokalize olmak zorunda.

+0

Harika çözüm! --orphan kullanmak yerine, bu adımda git checkout -b 'nı kullanarak daha fazla başarı elde ettim ve tmp dosyasını değiştirdim, böylece yalnızca en son düzine veya belirli bir yazarı tarafından yapılan işlemleri içermişti. Daha önce de belirtildiği gibi, yazarın işleri birden fazla şubeye yayılmışsa, bu kolayca çalışmayacaktır, bu nedenle ilk komut tarafından üretildikten sonra tmp dosyasından yalnızca belirli karmaları seçmeniz gerekebilir. – emery