আমি যদি একটি সাবমডিউলটি সংশোধন করি তবে আমি কি প্রতিশ্রুতিটি সাবমোডুল উত্সে ফিরে যেতে পারি, বা এর জন্য কোনও ক্লোন প্রয়োজন? যদি ক্লোন হয় তবে আমি কি অন্য কোনও ভান্ডারের ভিতরে ক্লোন রাখতে পারি?
আমি যদি একটি সাবমডিউলটি সংশোধন করি তবে আমি কি প্রতিশ্রুতিটি সাবমোডুল উত্সে ফিরে যেতে পারি, বা এর জন্য কোনও ক্লোন প্রয়োজন? যদি ক্লোন হয় তবে আমি কি অন্য কোনও ভান্ডারের ভিতরে ক্লোন রাখতে পারি?
উত্তর:
একটি সাবমডিউল কিছু অতিরিক্ত মেটা ডেটা (গিটলিংক ট্রি এন্ট্রি, .গিটমডিউল ফাইল) সহ অন্য রেপোর মধ্যে গিট রেপোর ক্লোন ছাড়া কিছুই নয় is
$ cd your_submodule
$ git checkout master
<hack,edit>
$ git commit -a -m "commit in submodule"
$ git push
$ cd ..
$ git add your_submodule
$ git commit -m "Updated submodule"
gh-pages
নোট করুন যে git1.7.11 সাল থেকে ( [ঘোষণা করা] গিট 1.7.11.rc1 এবং রিলিজ নোট , জুন ২০১২) উল্লেখ করেছে:
"
git push --recurse-submodules
" সুপারপ্রজেক্টের সাথে আবদ্ধ সাবমডিউলের ইতিহাসগুলি optionচ্ছিকভাবে অনুসন্ধান করতে এবং সেগুলি সরিয়ে দিতে শিখেছেন।
সম্ভবত এই প্যাচ এবং --on-demand
বিকল্প পরে সম্পন্ন :
recurse-submodules=<check|on-demand>::
নিশ্চিত হয়ে নিন যে ধাক্কা দেওয়ার জন্য সংশোধনগুলি দ্বারা ব্যবহৃত সমস্ত সাব-মডিউল কমিটগুলি দূরবর্তী ট্র্যাকিং শাখায় উপলব্ধ।
- যদি
check
এটি ব্যবহার করা হয় তবে এটি পরীক্ষা করা হবে যে ধাক্কা দেওয়ার জন্য পরিবর্তিত সমস্ত সাবমোডিয়াল কমিটগুলি রিমোটে উপলব্ধ।
অন্যথায় ধাক্কাটি বাতিল হয়ে যাবে এবং অ-শূন্য স্থিতি সহ প্রস্থান করবে।- যদি
on-demand
ব্যবহার করা হয় তবে সমস্ত সাবমোডিয়ালগুলি যা ধাক্কা দেওয়ার জন্য সংশোধনগুলিতে পরিবর্তিত হয়েছিল তা ধাক্কা দেওয়া হবে।
অন-ডিমান্ড যদি সমস্ত প্রয়োজনীয় সংশোধনগুলি ঠেলে দিতে না সক্ষম হয় তবে এটিও বাতিল হয়ে যাবে এবং শূন্য-স্থিতি ছাড়াই প্রস্থান করা হবে।
সুতরাং আপনি সমস্ত কিছু এক সাথে যেতে পারেন (প্যারেন্ট রেপো থেকে) একটি:
git push --recurse-submodules=on-demand
এই বিকল্পটি কেবল নীড়ের এক স্তরের জন্য কাজ করে। অন্য সাবমোডিয়ুলের অভ্যন্তরীণ সাবমডিউলে পরিবর্তনগুলি ধাক্কা দেওয়া হবে না।
গিট ২.7 (জানুয়ারী ২০১)) এর সাথে, পিতামাতার রেপোগুলিকে ... এবং সমস্ত কিছুর জন্য একটি সাধারণ গিট পুশ যথেষ্ট সাবমডিয়ুলগুলি
দেখুন d34141c কমিট , f5c7cd9 কমিট (03 ডিসেম্বর 2015) f5c7cd9 কমিট (03 ডিসেম্বর 2015), এবং b33a15b কমিট (17 নভেম্বর 2015) দ্বারা মাইক ক্রো ( mikecrowe
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 5d35d72 , 21 ডিসেম্বর 2015)
push
: যোগ করুনrecurseSubmodules
কনফিগার বিকল্পদ্য
--recurse-submodules
কমান্ড লাইন প্যারামিটার কিছু সময়ের জন্য অস্তিত্ব হয়েছে কিন্তু এটা কোন কনফিগ ফাইল সমতুল্য হয়েছে।এর সাথে সম্পর্কিত প্যারামিটারের স্টাইল অনুসরণ করে
git fetch
আসুনpush.recurseSubmodules
এই প্যারামিটারের জন্য একটি ডিফল্ট সরবরাহ করার জন্য উদ্ভাবন করি ।
এটির জন্য সংযোজনও প্রয়োজন--recurse-submodules=no
কনফিগারেশনটি কমান্ড লাইনে ওভাররাইড করার প্রয়োজন হলে সংযোজনও প্রয়োজন।এটি কার্যকর করার সর্বাধিক সোজা উপায় হ'ল একইভাবে
push
ব্যবহার কোড তৈরিsubmodule-config
করাfetch
।
git config
ডক এখন অন্তর্ভুক্ত :
push.recurseSubmodules
:নিশ্চিত হয়ে নিন যে ধাক্কা দেওয়ার জন্য সংশোধনগুলি দ্বারা ব্যবহৃত সমস্ত সাব-মডিউল কমিটগুলি রিমোট-ট্র্যাকিং শাখায় উপলব্ধ।
- মান যদি হয় '
check
' হয় তবে গিট যাচাই করবে যা ধাক্কা দেওয়ার জন্য পরিবর্তনগুলি পরিবর্তিত সমস্ত সাবমোডিয়াল কমিট সাবমোডেলের কমপক্ষে একটি রিমোটে উপলব্ধ। যদি কোনও কমিট অনুপস্থিত থাকে তবে ধাক্কাটি বাতিল হয়ে যাবে এবং শূন্য-স্থিতি ছাড়াই প্রস্থান করবে exit- মান যদি হয় '
on-demand
' হয় তবে সমস্ত সাবমোডিয়ালগুলি যা ধাক্কা দেওয়ার জন্য সংশোধনগুলিতে পরিবর্তিত হয়েছিল তা ধাক্কা দেওয়া হবে। অন-ডিমান্ড যদি সমস্ত প্রয়োজনীয় সংশোধনগুলি ঠেলে দিতে না সক্ষম হয় তবে এটিও বাতিল হয়ে যাবে এবং শূন্য-স্থিতি ছাড়াই প্রস্থান করা হবে। -- মান যদি হয় '
no
' হয় তবে চাপ দেওয়ার সময় সাবমডিউলগুলিকে উপেক্ষা করার ডিফল্ট আচরণ বজায় থাকে।'
--recurse-submodules=check|on-demand|no
' নির্দিষ্ট করে ধাক্কা দেওয়ার সময় আপনি এই কনফিগারেশনটিকে ওভাররাইড করতে পারেন ।
তাই:
git config push.recurseSubmodules on-demand
git push
গিট 2.12 (Q1 2017)
git push --dry-run --recurse-submodules=on-demand
আসলে কাজ করবে।
কম্যান্ড 0301c82 দেখুন , প্রতিশ্রুতি দিন 1aa7365 (17 নভেম্বর 2016) ব্র্যান্ডন উইলিয়ামসmbrandonw
দ্বারা ( ) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 12cf113 , 16 ডিসেম্বর 2016)
push run with --dry-run
প্রকৃতপক্ষে (গিট ২.১১ ডিসেম্বর, ২০১ and এবং নিম্ন / পূর্বে) ড্রাই-রান সঞ্চালন করে যখন চাহিদা অনুযায়ী সাব-মডিউলগুলি ধাক্কা দেওয়ার জন্য কনফিগার করা হয়।
পরিবর্তে সমস্ত সাবমোডিয়ালগুলিকে যা ধাক্কা দেওয়ার দরকার হয় সেগুলি আসলে তাদের রিমোটগুলিতে ঠেলে দেওয়া হয় যখন সুপারপ্রজেক্টের জন্য কোনও আপডেট একটি ড্রাই-রান হিসাবে সঞ্চালিত হয়।
এটি একটি বাগ এবং শুকনো রানের উদ্দেশ্যমূলক আচরণ নয়।পুনরাবৃত্তভাবে সাব-মডিউলগুলিকে 'অন-ডিমান্ড' ধাক্কা দেওয়ার জন্য কনফিগার করা হলে বিকল্পটিকে
push
সম্মান করতে শেখান--dry-run
।
এটি--dry-run
শিশু প্রক্রিয়াতে পতাকা প্রেরণ দ্বারা সম্পন্ন করা হয় যা একটি শুকনো রান সঞ্চালনের সময় সাবমডিউলগুলির জন্য একটি ধাক্কা দেয়।
এবং এখনও গিট 2.12-এ, আপনি এখন শীর্ষ স্তরের সুপারপ্রজেক্টটি না ধাক্কা দিয়ে সাবমোডিয়ালগুলি বাইরে ধাক্কা দেওয়ার " --recurse-submodules=only
" বিকল্প পেয়েছেন ।
দেখুন 225e8bf কমিট , 6c656c3 কমিট , কমিট 14c01bd দ্বারা (19 ডিসেম্বর 2016) : Brandon উইলিয়ামস ( mbrandonw
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 792e22e , 31 জানুয়ারী 2017)
git config push.recurseSubmodules on-demand
। তারপরে একটি সাধারণ সমস্ত কিছুর (মূল রেপো এবং সাবমডিউল)git push
ধাক্কা দিতে যথেষ্ট হবে । দেখুন নীচের আমার সম্পাদিত উত্তর ।