আমি আমার গিটহাব অ্যাকাউন্টে একটি সংগ্রহস্থলের কাজ করছিলাম এবং এটি হ'ল সমস্যা।
- নোড.জেএস প্রকল্পে একটি ফোল্ডার সহ কয়েকটি এনপিএম প্যাকেজ ইনস্টল করা আছে
- প্যাকেজগুলি
node_modules
ফোল্ডারে ছিল - Folder ফোল্ডারটি গিট রিপোজিটরিতে যুক্ত করা হয়েছে এবং কোডটি গিথুবকে ঠেলে দিয়েছে (সেই সময় এনপিএম অংশের বিষয়ে ভাবেননি)
- অনুধাবন করা হয়েছে যে কোডটির একটি অংশ হওয়ার জন্য আপনার অবশ্যই সেই ফোল্ডারটির দরকার নেই
- এই ফোল্ডারটি মোছা হয়েছে, এটি ধাক্কা দিয়েছে
সেই সময়ে, মোট গিট রেপোর আকার প্রায় 6MB ছিল যেখানে আসল কোডটি (সেই ফোল্ডার বাদে সমস্তটি ) কেবলমাত্র 300 কেবি এর কাছাকাছি ছিল ।
এখন আমি শেষ পর্যন্ত যা খুঁজছি তা হ'ল গিটের ইতিহাস থেকে সেই প্যাকেজ ফোল্ডারের বিশদ থেকে মুক্তি পাওয়ার উপায় যদি কেউ এটি ক্লোন করেন তবে তাদের 6 এমবি মূল্যবান ইতিহাস ডাউনলোড করতে হবে না যেখানে কেবল আসল ফাইলগুলি তারা পাবে শেষ প্রতিশ্রুতি হিসাবে 300KB হবে।
আমি এর জন্য সম্ভাব্য সমাধানগুলি সন্ধান করেছি এবং এই 2 টি পদ্ধতির চেষ্টা করেছি
- গিট সংগ্রহস্থল (ইতিহাস) থেকে ফাইল সরান
- http://help.github.com/remove-sensitive-data/
- https://gist.github.com/1588371
গিস্টটি দেখে মনে হয়েছিল এটি স্ক্রিপ্ট চালানোর পরে এটি যেখানে কাজ করেছিল, এটি দেখিয়েছিল যে এটি সেই ফোল্ডারটি থেকে মুক্তি পেয়েছে এবং তারপরে এটি দেখিয়েছে যে 50 টি পৃথক কমিট সংশোধিত হয়েছিল। তবে এটি আমাকে কোডটি ঠেকাতে দেয়নি। আমি যখন এটির দিকে চাপ দেওয়ার চেষ্টা করেছি, তখন এটি বলেছিল Branch up to date
তবে এটি দেখিয়েছিল যে একটিতে 50 টি কমিট সংশোধিত হয়েছিল git status
। অন্যান্য 2 টি পদ্ধতিও সাহায্য করে নি।
এখন যদিও এটি দেখিয়েছে যে এটি folder ফোল্ডারের ইতিহাস থেকে মুক্তি পেয়েছে, যখন আমি আমার লোকালহোস্টে rep রেপোর আকারটি যাচাই করেছি, এটি এখনও প্রায় 6MB এর কাছাকাছি ছিল। (আমি refs/original
ফোল্ডারটিও মুছলাম কিন্তু রেপোর আকারের পরিবর্তন দেখতে পাইনি)।
আমি যে বিষয়টি স্পষ্ট করতে চাইছি তা হ'ল, যদি কেবল প্রতিশ্রুতিবদ্ধ ইতিহাস না থেকে মুক্তি পাওয়ার উপায় থাকে (যা আমি মনে করি কেবল এটি ঘটেছে) তবে সেই ফাইলগুলি গিটও ধরে নিচ্ছে যে কেউ রোলব্যাক করতে চায়।
এর জন্য একটি সমাধান উপস্থাপন করা হয়েছে এবং এটি আমার লোকালহোস্টে প্রয়োগ করা হয়েছে তবে সেই গিথহাব রেপোতে পুনরুত্পাদন করা যায় না, এটি কি রেপো ক্লোন করা সম্ভব, প্রথম প্রতিশ্রুতিবদ্ধ রোলব্যাকটি কৌশলটি সম্পাদন করে এবং এটি ধাক্কা দেয় (বা এর অর্থ এই যে গিটটি হবে এখনও সেই সমস্ত কমিটের ইতিহাস রয়েছে? - ওরফে 6 এমবি)।
আমার এখানে শেষ লক্ষ্যটি হ'ল গিটটি থেকে ফোল্ডার সামগ্রীগুলি থেকে মুক্তি পাওয়ার সর্বোত্তম উপায়টি সন্ধান করা যাতে কোনও ব্যবহারকারীকে 6 এমবি মূল্যের জিনিসপত্র ডাউনলোড করতে না হয় এবং সম্ভবত অন্যান্য কমিটগুলি কখনও কখনও মডিউলগুলির ফোল্ডারে স্পর্শ না করে (এটি খুব সুন্দর) গিটের ইতিহাসে অনেকগুলি)।
কিভাবে আমি এটি করতে পারব?