2013-01-08 25 views
15

Taahhüdün işlenmesinden önce bilmenin bir yolu var mı?Yapmadan önce GIT hashını bilin?

+0

Sadece işleyememenizin, karma almanın ve sonra sıfırlamanın bir sebebi var mı? –

+1

Bunu yapmayı düşündüm, ancak bunun yerine bu süreci yapmanın bir yolu yok mu? –

+0

Her zaman bir yol var, ama biraz jimnastik. Neden buna ihtiyacın var? –

cevap

12

Bunun için gerekenin sebebi nedir? Taahhütün karmaşasını kendi taahhüt mesajına koymayı düşünüyorsanız, size söylemekten dolayı özür dilerim ama bu imkansızdır (veya en azından SHA1'i bozmadan imkansızdır). Taahhüt mesajı, karma oluştururken kullanılan parçalardan biridir, bu nedenle mesajı değiştirmeye yönelik herhangi bir girişim karma değişecektir. Her halükarda, işlenmeden önce taahhüdün karmaşasını bulmak, fiilen taahhüt etmekten, karıyı yazmaktan ve sonra da (Carl Norum'ın kendi yorumunda önerdiği gibi) taahhüdünü atmaktan neredeyse ayırt edilemezdir. Bunun nedeni, karma işleminin taahhüt nesnesini oluşturarak ve SHA1'den geçirerek üretilmesidir. Bu nedenle, hashı işlemeksizin bulmak için, esas olarak diske veri yazmadan, işlem sürecini manuel olarak ve SHA1 sonuçlarını incelemelisiniz. Ve sadece bu pratik değildir, aynı zamanda tamamen anlamsızdır.

+0

GIT'in bunu yapmak için bir yolu olacağını düşündüm, tıpkı Subversion gibi (örneğin, $ Revision $). –

+2

@MarceloLiberato: Subversion'da, oluşturduğunuz işlemin revizyon numarasının ne olacağını tahmin etmek önemsiz. Git'de, kelimenin tam anlamıyla imkansızdır (bir şekilde SHA1'i kırmayı önermediğiniz sürece). –

+0

Ve "imkansız" ile "git bir yol sağlamadığı için" demek istemiyorum, "çünkü bu işlevselliği, dönemi uygulayamayacağınız için" demek istiyorum. –

9

İşlem hashı taahhüt süresine bağlıdır.

Aynı değişiklik içinde aynı ebeveyn, aynı yazar ve taahhüt mesajıyla aynı anda 2 işlem yaparsanız, aynı kareyi alırsınız. Aksi halde, karma farklı olmalıdır.

İlgili konular