কীভাবে গিট সাবমোডিয়ালকে সাবফোল্ডারে দেখানো যায়?


104

সাবমোডুল টিউটোরিয়ালের মাধ্যমে স্কিমিং করে বোটো প্রকল্পের বাইরে একটি সাবমডিউল তৈরি করেছি । তারপরে, আমি আবিষ্কার করেছি যে আমার আসলে এই প্রকল্পের কেবল একটি উপসেট দরকার - বিশেষত বোটো ফোল্ডার।

আমি আমার ফর্মটিকে এই ফোল্ডারে দেখানোর জন্য পরিবর্তন করতে চাই। আমি যখন। গিটমডিউলগুলিতে দেখি তখন দেখি

[submodule "backup/src/boto"]
    path = backup/src/boto
    url = https://github.com/boto/boto.git

Https://github.com/boto/boto.git এর পরিবর্তে আমার কোন ইউআরএল ব্যবহার করা উচিত ? আমি ইউআরএল পরিবর্তন করার পরে, আমি কি স্থানীয়ভাবে বোটো ফোল্ডারটি মুছে ফেলা এবং পুনরায় টানতে পারি?


4
এটি আপনি যা চান ঠিক তা নয় - কোনও সাবমডিউল নয় - তবে আপনার একবার দেখে নিতে পারেনgit subtree
ক্যাস্যাবেল

4
আমি যা করতে পেরেছি তা পুরো সাবমডিউলটি হ'ল, এবং ইন্টেলিজকে বলছে যে বোটো ফোল্ডারটি 'উত্স ফোল্ডার', তাই এটি এতে প্যাকেজগুলি খুঁজে পেতে পারে।
ripper234

16
আমি বিশ্বাস করতে পারি না গিট স্থানীয়ভাবে এটি করে না ... হায়
রজারডপ্যাক

4
পাওয়া একটি অনুরূপ প্রশ্ন - stackoverflow.com/questions/1121227/...
sashoalm

উত্তর:


67

আমি ভয় করি যে সাবমডিউলগুলির জন্য ইউআরএল সর্বদা কেবল সংগ্রহস্থলের দিকে নির্দেশ করে - আপনি উল্লেখ করতে পারবেন না যে আপনি কেবল কোনও সংগ্রহস্থলের সাবফোল্ডার চান, ঠিক একইভাবে গিটটি "সংকীর্ণ ক্লোনগুলি" সমর্থন করে না।

আপনি যদি পুরো উপস্থাপনা হিসাবে পুরো সংগ্রহস্থল থাকার সাথে বাঁচতে না পারেন তবে আপনি সর্বদা একটি নতুন সংগ্রহশালা তৈরি করতে পারেন যা বোটো থেকে ক্লোন করা হয়েছে এবং তারপরে ক্রোন জব স্থাপন করতে পারেন:

  1. git fetch ডিরেক্টরিতে এই সংগ্রহস্থল
  2. git filter-branchএকটি শাখা আপডেট করতে ব্যবহার করুন যেখানে উপ-ডিরেক্টরি শীর্ষ স্তরে রয়েছে।
  3. ভান্ডারটির সেই শাখাটিকে সাব-মডুল হিসাবে যুক্ত করুন। যাইহোক, এটি কিছুটা নির্দ্বিধায় এবং আমার পছন্দটি কেবলমাত্র সাবমোডিয়ুল হিসাবে পুরো সংগ্রহস্থল থাকার সাথে বাঁচতে হবে।

24

আপনি কোনও সংগ্রহস্থলের একটি অংশই ক্লোন করতে পারবেন না। এটি কারণ গিটটি সংগ্রহস্থলটিকে পুরো অবজেক্ট হিসাবে বিবেচনা করে: আপনি যখন এটি পাবেন, আপনি এটি সমস্ত পেয়ে যাবেন

সুতরাং, সমাধানটি হ'ল সাব ডিরেক্টরিটি অন্য ডিরেক্টরিতে আনতে হবে, তারপরে আপনার লক্ষ্য অর্জনের জন্য একটি সিমলিংক ব্যবহার করুন।


আমার উইন্ডোজগুলিতে সিমলিংক রয়েছে ... খুব ভাল কাজ করে। (এটি আমার মেশিনে থাকা ln -s
মিসির

7
ভিস্তা এবং & এম কে লিংকের সাথে আসুন। আমি যে ব্যবহার। howtogeek.com/howto/windows-vista/…
অ্যাঞ্জেল এস মোরেনো

4
পরিবর্তে আপনি হার্ড লিঙ্কগুলি ব্যবহার করতে পারেন
KindDragon

16

আপনি যা করতে চান তা হল সাবমডিউলে একটি শাখা তৈরি করা এবং ফোল্ডারটি সরিয়ে নিয়ে যাওয়া এবং আপনার যা প্রয়োজন তা মুছে ফেলুন। তারপরে আপনি সেই শাখাটি পরিচালনা করতে পারেন। আপনি যদি নিজের পরিবর্তনগুলি এগিয়ে নিতে চান তবে আপনার প্রথমে মার্জ করে ফিরে আসতে সক্ষম হওয়া উচিত। গিট জানতে পারবে যে আপনি ফাইলগুলি সরিয়ে নিয়েছেন এবং সফলভাবে মার্জটি করেছেন।

আশাকরি এটা সাহায্য করবে.


"ব্যাক মার্জ" কী? আপনি একটি উদাহরণ দিতে পারেন?
সুকিমা

একটি মার্জ যা "উজানে" যায় - একটি উচ্চতর অর্ডার শাখা থেকে নীচের অর্ডারে। লিনাস তাদের ঘৃণা করে। তারা অন্যান্য শাখাগুলি থেকে ইতিহাস বেঁধে দেয় যা ইতিমধ্যে সংযুক্ত হয়ে থাকতে পারে।
অ্যাডাম ডাইমিত্রুক

আপনি কি এই পরিস্থিতিতে "ব্যাক মার্জ" সম্পর্কে কিছু উদাহরণ যুক্ত করতে পারেন?
জিয়াও

সাধারণত যখন আপনি চেষ্টা করেন এবং একটি মেইনলাইন শাখা থেকে জিনিসগুলিতে মার্জ করে আপনার বৈশিষ্ট্য শাখাকে বর্তমান রাখেন যেখানে প্রত্যেকে তাদের সর্বশেষ পরিবর্তনগুলি মার্জ করছে। এটি খারাপ কারণ এটি আপনার শাখাটিকে অন্যের কাজের সাথে যুক্ত করে। যদি পণ্যটির জন্য আপনার শাখার প্রয়োজন হয় তবে ইতিমধ্যে ইন্টিগ্রেশন শাখায় থাকা অন্য একটিরও নয়, এটি সম্ভব নয়।
অ্যাডাম ডাইমিট্রুক

4
আকর্ষণীয় ধারণা, কেউ কি এই চেষ্টা করেছেন? আমি শীঘ্রই চেষ্টা করতে যাচ্ছি, তবে এখনও নিশ্চিত নয় যে "ব্যাক মার্জ" পরিষ্কার এবং স্বয়ংক্রিয়ভাবে হতে পারে ...
মউড্রিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.