منصوبے کے بارے میں

git-crypt ایک کمانڈ لائن ٹول ہے جو git ریپوزٹری کے اندر فائلوں کی شفاف انکرپشن اور ڈیکرپشن کو قابل بناتا ہے۔ حفاظت کے لیے نامزد کردہ فائلیں کمٹ پر خودکار طور پر انکرپٹ ہو جاتی ہیں اور چیک آؤٹ پر ڈیکرپٹ ہو جاتی ہیں، جس سے ٹیمیں عوامی اور نجی مواد کا مرکب رکھنے والی ریپوزٹریاں شیئر کر سکتی ہیں بغیر پوری ریپوزٹری کو لاک ڈاؤن کیے۔ کلیدی خصوصیات میں شامل ہیں: - git فلٹرز کے ذریعے شفاف انکرپشن اور ڈیکرپشن، تاکہ صارفین ابتدائی سیٹ اپ کے بعد معمول کے مطابق git استعمال کر سکیں - CTR موڈ میں AES-256، جس میں فائل کے SHA-1 HMAC سے اخذ کردہ مصنوعی IV شامل ہے، جو تعیین شدہ چنے ہوئے حملے کے تحت معنوی حفاظت فراہم کرتا ہے - کثیر صارف تعاون کے لیے GPG پر مبنی کلید شیئرنگ، جہاں عوامی کلیدیں git-crypt add-gpg-user کے ذریعے شامل کی جاتی ہیں - GPG کی ضرورت کے بغیر محفوظ کلید تقسیم کے لیے ہم آہنگ کلید برآمد - نرم انحطاط، تاکہ خفیہ کلید کے بغیر ڈویلپرز اب بھی ریپوزٹری کلون اور کمٹ کر سکیں کنفیگریشن ایک .gitattributes فائل کے ذریعے کی جاتی ہے جو بتاتی ہے کہ کون سی فائلیں یا پیٹرن انکرپٹ کیے جائیں۔ پیٹرن فارمیٹ .gitignore کی طرح ہے، جس میں وائلڈ کارڈز اور ڈائریکٹری پیٹرن شامل ہیں۔ .gitattributes فائل خود انکرپٹ نہیں ہونی چاہیے، اور حساس فائلیں شامل کرنے سے پہلے قواعد موجود ہونے چاہئیں۔ حفاظتی تحفظات: git-crypt دوسرے شفاف git انکرپشن سسٹمز سے زیادہ محفوظ ہے جو ECB یا CBC کو فکسڈ IV کے ساتھ استعمال کرتے ہیں۔ تاہم، یہ فائل کے نام، کمٹ پیغامات، سم لنک اہداف، یا دیگر میٹا ڈیٹا کو انکرپٹ نہیں کرتا۔ یہ اس بات کو نہیں چھپاتا کہ فائل کب تبدیل ہوتی ہے، فائل کی لمبائی، یا یہ حقیقت کہ دو فائلیں ایک جیسی ہیں۔ یہ پہلے دی گئی انکرپٹڈ ریپوزٹری تک رسائی کو منسوخ کرنے کی حمایت بھی نہیں کرتا، کیونکہ تاریخی ڈیٹا کے تناظر میں یہ فطری طور پر پیچیدہ ہے۔ حدود میں شامل ہیں: ریپوزٹری میں زیادہ تر یا تمام فائلوں کو انکرپٹ کرنے کے لیے موزوں نہیں (چند حساس فائلوں جیسے نجی کلیدیں یا API اسناد کے منتخب انکرپشن کے لیے بہتر)، انکرپٹڈ فائلیں کمپریس ایبل نہیں ہیں لہذا چھوٹی تبدیلیوں پر بھی پوری فائل کو ذخیرہ کرنا پڑتا ہے، اور یہ کچھ تھرڈ پارٹی git GUIs جیسے Atlassian SourceTree اور GitHub for Mac کے ساتھ قابل اعتماد طریقے سے کام نہیں کر سکتا۔ git-crypt سے انکرپٹ شدہ فائلیں git-apply کے ساتھ پیچ نہیں کی جا سکتیں جب تک کہ پیچ خود انکرپٹ نہ ہو۔ تازہ ترین ورژن 0.8.0 ہے، جو 2025-09-23 کو جاری ہوا۔ پروجیکٹ کا مقصد بگ سے پاک اور قابل اعتماد ہونا ہے لیکن ابھی مکمل پختگی تک نہیں پہنچا، اور ورژن 1.0 سے پہلے پیچھے سے غیر مطابقت پذیر تبدیلیاں متعارف ہو سکتی ہیں۔