İki çatallı olduğu için, birbirinin çatalları olan ve zaman zaman birbirinden bir diğerine gönderim yapmam gerekiyor. ÖrneğinGit yamaları yalnızca belirli dosyaları değiştiren işlemler için nasıl oluşturabilirim/uygulayabilirim
:
git-repo1
bu dizin aşağıdaki yapıya sahiptir:
repo1/project1/src
repo1/project2/src
git-repo2
ise aşağıdaki dizin yapıya sahiptir:
repo2/src/
Yapmak istediklerim, yalnızca belirli bir alt dizindeki (örneğin, repo1/project1/src
) dosyaları değiştiren ve yalnızca başka herhangi bir yerde dosyaları değiştiren tüm işlemleri yok sayan işlemler için bir dizi işlem yapıp yamalar oluşturmaktır. Ya da alternatif olarak, tüm işlemler için yamalar oluşturun, ancak yalnızca belirli bir dizindeki dosyaları değiştirirse yamayı uygulayın.
İşlemlerle ilgili meta verileri korumam gerekiyor, bu nedenle git diff
ile oynamak, geçerli bir seçenek gibi görünmüyor.
Çatallı git reposları arasındaki dizin yapısı farklıdır.
Bunu yapmak için ileriye doğru bir yol var mı?
UPDATE1
Ben dizin yapıları farklı başa çıkma açısından bu soruyu (How to apply a git patch from one repository to another?) görüyoruz.
Peki ya yama, yalnızca mevcut olmayan dosyaları değiştirmekten bahsediyorsa? Bu tür değişiklikleri görmezden gelmek isterim. İki depoları (ikisi de aynı deposundan çatallı, ancak farklı şekilde evrimleşmiş) ortak bir tarih varsa
komutunu kullanırken "sed-rf mystuff.sed mystuff.patch> justmystuff.patch" Im hatası "sed: yasadışı seçeneği - r" alma? ne olabilir bir fikrin var –
Kullanım '- E 'yerine,' -r' artık tarihsel bir yazımdır.Tüm cevapta sabit, teşekkürler – jthill
Eğer sed scriptinizde bir açıklama yapabilirseniz güzel olurdu! – Neil