একটি সমাধান গিট smudge
এবং clean
ফিল্টার ব্যবহার করা যেতে পারে । এই সমাধানটির কিছু মারাত্মক অবলম্বন রয়েছে, যা আমরা পরে আসব।
আপনাকে দুটি স্ক্রিপ্ট লিখতে হবে যা ফিল্টার হিসাবে কাজ করে, যেমন স্ট্যান্ডার্ড ইনপুট থেকে পড়া এবং স্ট্যান্ডার্ড আউটপুটে লিখতে write ডকুমেন্টেশন থেকে:
ফিল্টার ড্রাইভারের মধ্যে একটি ক্লিন কমান্ড এবং একটি স্মাড কমান্ড থাকে, যার মধ্যে দুটিই অনির্দিষ্ট করা যায়। চেকআউট করার পরে, স্মাড কমান্ডটি নির্দিষ্ট করা হলে, কমান্ডটি স্ট্যান্ডার্ড ইনপুট থেকে ব্লব অবজেক্টকে খাওয়ানো হয় এবং ওয়ার্কট্রি ফাইল আপডেট করার জন্য এর স্ট্যান্ডার্ড আউটপুট ব্যবহার করা হয়। একইভাবে, ক্লিন কমান্ডটি ওয়ার্কট্রি ফাইলের বিষয়বস্তুগুলি চেকিনের উপর রূপান্তর করতে ব্যবহৃত হয়।
উদাহরণস্বরূপ, ওপেনসেল ব্যবহার করার সময় আমরা ফাইলগুলি লিখতে পারি fooenc.sh
:
#!/bin/sh
openssl enc -bf -nopad -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T
এবং foodec.sh
:
#!/bin/sh
openssl enc -bf -nopad -d -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T
নোট করুন যে এই স্ক্রিপ্টগুলি সংগ্রহস্থলের বাইরে রাখা উচিত এবং যেগুলি কী রয়েছে সেগুলি এগুলি গোপন রাখা উচিত ! অন্যথায় তারা সুবিধাজনক কারণ তারা যতবার ডাকে ততবার পাসফ্রেজ জিজ্ঞাসা করে না।
আরও কিছুটা নিরাপদ বিকল্প হতে পারে জিপিজি ব্যবহার করা।
ইন .git/config
আপনার সংগ্রহস্থলের মধ্যে আপনি যে ফাইলটি এই ফিল্টার উল্লেখ করা উচিত;
[filter "crypt"]
clean = fooenc.sh
smudge = foodec.sh
এই না একটি টাইপো! উপরের ডকুমেন্টেশন সংক্ষেপে দেখুন। এই সেটআপটি চেকিনে ডেটা এনক্রিপ্ট করে এবং চেকআউটে ডিক্রিপট করে।
তারপরে সংগ্রহস্থলের .git/info/attributes
ফাইলটিতে আপনি সমস্ত ফাইলের জন্য এই ফিল্টারটি ব্যবহার করার জন্য নির্দিষ্ট করেছেন;
* filter=crypt
ফিল্টারিং স্ক্রিপ্টগুলি যতক্ষণ না উপলব্ধ থাকে ততক্ষণ ওয়ার্কিং ডিরেক্টরিতে পঠনযোগ্য ফাইল থাকবে। তবে গিট বস্তু এনক্রিপ্ট করা হবে।
দ্রষ্টব্য যে এটি আসলে কোনও স্ক্র্যাপ নেই এমন কোনও মেশিনে ফাইলগুলি ব্যবহার করা বন্ধ করে দেয়। সুতরাং বিটবাকেট কেবল স্টোরেজ হিসাবে কাজ করবে।
এখন ডাউনসাইডের জন্য; এই সমাধানটি এমন সরঞ্জামগুলিও তৈরি git diff
করে যা সবকিছু অযথা উপর নির্ভর করে যেহেতু গিটের অবজেক্টগুলি এখন এনক্রিপ্ট করা ব্লব।
সম্পাদনা করুন:
গেট -ক্রিপ্ট বা গিট-এনক্রিপ্টের মতো ইউটিউবিলিটিগুলি আপনার রেপোর সামগ্রীগুলি এনক্রিপ্ট করার ক্ষেত্রে আপনাকে সহায়তা করতে পারে।
এবং বিভিন্ন সমস্যার সমাধান আছে; ডিফস জন্য একটি বিশেষ ফিল্টার ব্যবহার; অতিরিক্ত স্ক্রিপ্ট সহ টেক্সটকনভ ব্যবহার করে ব্লবগুলি পৃথক -এড করার আগে ডিক্রিপ্ট করুন।