আমার একই রকম সমস্যা ছিল তবে আমি জিইআইআই সরঞ্জামগুলি দিয়ে নিজেকে একটি কোণে আঁকিয়েছি।
এতে কয়েকটি ফাইল সহ আমার একটি সাবপ্রজেক্ট ছিল যা আমি এখনও তাদের নিজস্ব গিট রেপো পরীক্ষা করে দেখার পরিবর্তে কেবল অনুলিপি করেছিলাম। আমি সাবফোল্ডারে একটি রেপো তৈরি করেছি, প্রতিশ্রুতিবদ্ধ, ধাক্কা দিতে সক্ষম হয়েছি ইত্যাদি ঠিকঠাক। তবে প্যারেন্ট রেপোতে সাবফোল্ডারটিকে উপ-মডেল হিসাবে বিবেচনা করা হয়নি, এবং এর ফাইলগুলি প্যারেন্ট রেপো দ্বারা এখনও ট্র্যাক করা হয়েছিল - কোনও ভাল নয়।
এই জগাখিচুড়ি থেকে বেরিয়ে আসার জন্য আমাকে গিটকে সাবফোল্ডারটি (ফাইলগুলি মোছা ছাড়াই) ট্র্যাকিং বন্ধ করতে বলতে হয়েছিল :
proj> git rm -r --cached ./ui/jslib
তারপরে আমাকে এটি জানাতে হয়েছিল যে সেখানে একটি সাবমডিউল ছিল (যা বর্তমানে গিট দ্বারা ট্র্যাক করা কিছু থাকলে আপনি এটি করতে পারবেন না):
proj> git submodule add ./ui/jslib
হালনাগাদ
এটি পরিচালনা করার আদর্শ উপায়টিতে আরও কয়েকটি পদক্ষেপ জড়িত। আদর্শভাবে, বিদ্যমান রেপোগুলি কোনও নিজস্ব পিতামাতার গিট মডিউলগুলি থেকে মুক্ত, প্রতিশ্রুতিবদ্ধ এবং ধাক্কা দিয়ে মুক্ত করা হয় এবং তারপরে একটি সাবমডিউল হিসাবে যুক্ত করা হয়:
proj> git submodule add git@bitbucket.org:user/jslib.git ui/jslib
এটি একটি উপ-মডেল হিসাবে গিট রেপোকে ক্লোন করবে - যার মধ্যে মানক ক্লোনিং পদক্ষেপগুলি অন্তর্ভুক্ত রয়েছে, তবে এই সাবমোডুলটি কাজ করতে গিট আপনার পক্ষ থেকে গ্রহণ করে এমন আরও কয়েকটি অস্পষ্ট কনফিগার পদক্ষেপ রয়েছে। সর্বাধিক গুরুত্বপূর্ণ পার্থক্যটি হ'ল এটি একটি .git ডিরেক্টরি পরিবর্তে একটি সাধারণ .git ফাইল রাখে, যেখানে আসল গিট দির কোথায় থাকে তার একটি পাথ উল্লেখ রয়েছে - সাধারণত পিতামৃত প্রকল্পের মূল .git / মডিউল / jslib এ।
আপনি যদি এইভাবে কাজ না করেন তবে তারা আপনার পক্ষে ভাল কাজ করবে, তবে আপনি বাবা-মাকে প্রতিশ্রুতিবদ্ধ এবং ধাক্কা দেওয়ার সাথে সাথেই অন্য দেবতা সেই পিতামাতাকে টানতে চলেছেন, আপনি তাদের জীবনকে আরও শক্ত করে তুলেছেন। আপনার মেশিনে আপনার যে কাঠামোটি রয়েছে তার প্রতিলিপি তৈরি করা তাদের পক্ষে খুব কঠিন হবে যতক্ষণ না আপনার নিজের একটি .git দির রয়েছে এমন একটি সাব-ফোল্ডারে একটি সম্পূর্ণ .git দির রয়েছে।
সুতরাং, সরানো, ধাক্কা, গিট অ্যাড সাবমডিউল, সবচেয়ে পরিষ্কার বিকল্প।