গিট সাবমডিউল এবং সাবট্রি ব্যবহারের মধ্যে ধারণাগত পার্থক্যগুলি কী কী?
প্রতিটি জন্য সাধারণ পরিস্থিতিতে কি?
গিট সাবমডিউল এবং সাবট্রি ব্যবহারের মধ্যে ধারণাগত পার্থক্যগুলি কী কী?
প্রতিটি জন্য সাধারণ পরিস্থিতিতে কি?
উত্তর:
আমি যদি লিঙ্কগুলি সর্বদা বাহ্যিক রেপোর হেডকে নির্দেশ করতে চাই তবে কী হবে?
আপনি সাবমডিউল রিমোট রেপোর একটি শাখার হেড অনুসরণ করতে একটি সাবমডিউল তৈরি করতে পারেন, এটি সহ:
ও git submodule add -b <branch> <repository> [<path>]
। (অনুসরণ করার জন্য একটি শাখা নির্দিষ্ট করতে)
o git submodule update --remote
যা <repository>/<branch>
ডিফল্টরূপে সাবমোডিয়ালের সামগ্রীটি সর্বশেষতম হেড থেকে আপডেট করবে origin/master
। আপনার মূল প্রকল্পটি সাবমডিউলের হেডের হ্যাশগুলি এখনও --remote
ব্যবহার করা হলেও ট্র্যাক করবে ।
add -b
এবং --remote
তারপরেই সম্পন্ন হয় । সেক্ষেত্রে , মাস্টারের হেডের অনুসরণের জন্য এখনও সত্যই দরকার আছে? -b
-b
সাবমোডুলের জন্য ডান .গিটমডিউল মেটাডেটা তৈরি করতে ব্যবহৃত হয় (এটি একটি এর সমতুল্য git config -f .gitmodules submodule.<path>.branch <branch>
)।
--remote
- এটি ব্যবহার না করা --remote
থাকলেও কাজ -b
করে add
। উভয় ক্ষেত্রেই আপডেটটি প্যারেড রেপোতে সাবমডিউলে আবাসনের প্রতিশ্রুতি ঘটাবে, সুতরাং লিঙ্কগুলি সত্যই খুব স্বয়ংক্রিয় উপায়ে "সর্বদা হেডকে নির্দেশ করে" না .... হয় আমি তা পাইনি, বা দাবিটি আসল উত্তর (?) থেকে আরও ভাল সরানো হবে
ধারণাগত পার্থক্য হ'ল:
সঙ্গে Git submodules আপনি সাধারণত ছোট বেশী মধ্যে একটি বৃহৎ সংগ্রহস্থলের আলাদা করতে চাই। সাবমোডিয়ুলকে রেফারেন্স করার উপায়টি মভেন-স্টাইল - আপনি অন্য (সাবমডিউল) সংগ্রহস্থল থেকে একটি প্রতিশ্রুতি রেফারেন্স করছেন। আপনার যদি সাবমডিউলের মধ্যে কোনও পরিবর্তন প্রয়োজন হয় আপনাকে সাবমোডিয়ুলের মধ্যে একটি কমিট / পুশ করতে হবে, তারপরে মূল সংগ্রহস্থলে নতুন প্রতিশ্রুতিটি উল্লেখ করুন এবং তারপরে মূল সংগ্রহস্থলের পরিবর্তিত রেফারেন্সটি প্রতিশ্রুতিবদ্ধ / চাপুন। সম্পূর্ণ বিল্ডের জন্য আপনার উভয় ভান্ডার অ্যাক্সেস করতে হবে।
সঙ্গে Git সাবট্রি আপনি তার ইতিহাস সহ ভেজাল, অন্য সংগ্রহস্থলের একীভূত। সুতরাং এটি সংহত করার পরে, আপনার সংগ্রহস্থলের আকার সম্ভবত বড় so সংহতকরণের পরে অন্য সংগ্রহস্থলের সাথে কোনও সংযোগ নেই এবং আপনি আপডেট পেতে না চাইলে আপনার এতে অ্যাক্সেসের প্রয়োজন হবে না। সুতরাং কোডটি এবং ইতিহাস পুনরায় ব্যবহারের জন্য এই কৌশলটি বেশি - আমি ব্যক্তিগতভাবে এটি ব্যবহার করি না।
git subtree
এখনও চাপ দিতে পারে - আপনি যদি চান - ঠিক?
উপ-মডিউল
একটি প্রধান রেপোকে একটি রিমোটে ঠেলে উপ-মডিউলটির ফাইলগুলিকে ধাক্কা দেয় না
উপ-গাছ
একটি প্রধান রেপোকে রিমোটে ঠেলে উপ-গাছের ফাইলগুলিকে ধাক্কা দেয়
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags production refs/heads/master:refs/heads/master