2015-02-27 18 views
5

Git akış stili iş akışı kullanıyoruz ve belirli bir kod satırında hangi çekme isteğinin dahil edildiğini öğrenmek istiyoruz.Belirli bir satırı değiştiren birleştirme işlemini bulun.

 c---e---g 
    /  \ 
-a---b---d---f---h--- master 

My çekme isteği "çekme isteği # 123 Birleştirme" mesajı işlemek ile h birleşti:

şu tarihe olduğunu varsayalım.

Çekme isteğinde eklenen kod satırlarında bir git suçlaması yaparsam, h yerine e gösterir.

12345678 (Wilfred Hughes   2015-02-02 15:22:40 +0000 402) # Some old code 
e  (Wilfred Hughes   2015-02-12 15:22:40 +0000 402) # Added in the PR, line 1 
e  (Wilfred Hughes   2015-02-12 15:22:40 +0000 403) # Added in the PR, line 2 
56789012 (Wilfred Hughes   2015-02-26 17:24:18 +0000 404) # More old code 

Belirli bir kod satırı için birleştirme işlemini git'de nasıl bulabilirim?

(Bu, satır satırlarıyla başlıyorum, taahhüt değil, this related question'dan farklıdır).

+0

cevap olarak ..'? İlk giriş, 'h' işlemine karşılık gelmelidir. – Jubobs

+0

Bu soruyu http://stackoverflow.com/q/8475448/2082964 kullanabilirsiniz: belirli bir işlemi takip eden birleştirme nasıl bulunur –

cevap

2

Birleştirme-taahhüt, yalnızca bu taahhütte çakışmayı çözmüş olsaydınız, git-suçunda görünür. kodun herhangi doğrultusunda değiştirmek ve sadece g ve f birleşti etmedi olarak çatışma olmadan, normal Birleştirmeler için

, saat git suçlama görünür asla.

Peki 2 aşamadan

  1. elde edilebilir istediğim ilk buldukları ilgilendiğiniz kod etkiledi hattını işlemek. Bu (git suçu -L seçeneği aracılığıyla elde git 1.8 geliyor olabilir. 4). Tam satır numarası değişmiş olabileceğinden, 10+ satırlık bir dizi verin.

    $ git suçu -L200, + 10 - dosyaadi.uzantisi

  2. ilk birleştirme bul adımda bulunan tamamlama aşağıdaki taahhüt 1 Yani ilk çizgisini etkiledi kesinleştirme hangi bulmak zorunda kalacak ilgilendiğiniz kodu. Bu elde edilebilir Eğer `git --reverse --merges --topo sipariş log denediniz Find merge commit which include a specific commit

İlgili konular