Bir sorunum var, SHA kimliğiyle yaptığım taahhütlü iletilerden diğer taahhütlere başvurmaktan hoşlanırım, ancak zaman zaman bir önceki işlemi değiştirmeyi de severim . Bir taahhüdümü değiştirdiğimde, SHA Kimliği değişir, herhangi bir fikir? Bir taahhüde benzersiz bir şekilde atıfta bulunmanın başka bir yolu var mı? teşekkürlerTarihe dönüştüğünde Git'e bir taahhüt referansı
cevap
Bunu düzeltmenin otomatik bir yolu yoktur. Muhtemelen yapmak istediğiniz şey, bir noktada işlemlerin sonlandırılmasıdır (yani, master ile birleştirildiğinde) ve bu noktada tüm SHA1'lerin doğru yere işaret ettiğini doğrulayın.
Kendinizi kontrol etmenin bir yolu, SHA1'lerin (örn., git log --grep='[0-9a-f]{7}
) iletilerini grep göndermesi ve söz konusu SHA1'in iletisinin kendisine ilettiği işlemin atası olan bir işlemi temsil edip etmediğini kontrol etmektir. Bu kontrolü bir kancadan da tetikleyebilirsin. Tam olarak hangi kanca iş akışınıza bağlıdır; Ön-taahhüt ya da birleştirme sonrası olasılıklar görebiliyordum. Tek taahhütlü doğrulama için (ön-taahhüt gibi), günlükleri, sadece mevcut taahhüt mesajını greplemek zorunda kalmazsınız. Birleştirme için birleştirilen taahhütlerin günlüklerini grep yapmak istersiniz.
Etiketleri kullanmanın tek yolu olduğunu düşünüyorum. Ancak, bir başvuruya başvurmak istediğinizde bir etiket oluşturmak oldukça zahmetli.
Belki göreli başvuruları (~5
gibi) kullanabilir, ancak silerseniz, böler veya dağıttığınız takdirde bu durum bozulur. Bir başka olasılık, ağacın SHA1'ine gönderme yapmaktır, söz konusu olanın kendisi değil. Bu şekilde, eğer değişimleri değiştirdiyseniz, ancak arkasındaki ağaçları değil, referans hala işe yarayacaktır. Bununla ilgili problem, araçların bunu desteklememesidir.
Etiketler buna nasıl hitap ediyor? SHA1'lerin taahhütlerine işaret ederler, dolayısıyla önceki bir işlemi değiştirirseniz, aynı şey olur. – Cascabel
@Jefromi, haklısın, farkında değildim. – svick