গিট সাবমডিউলস। সুপার-প্রকল্পের একটি নতুন ক্লোন টানছে


87

ঠিক আছে. তাই আমি ভেবেছিলাম আমার এই পরাজিত হয়েছে ... তবে এখন ....

আমার একটি প্রকল্প রয়েছে যার মধ্যে গিটহাবের একটি ছোট ছোট গ্রন্থাগার সাবমডিউল হিসাবে অন্তর্ভুক্ত রয়েছে। সেই সুপার-প্রকল্পের মূল সংস্করণে সাবমডিউলটি প্রত্যাশার মতো কাজ করছে।

যাইহোক, আমি কেবল সুপারপ্রজেক্টকে ক্লোন করেছি, আমার যা ভাবা উচিত তা করেছে: "গিট সাবমডিউল ইনি", সাবমডিয়ুলটির ডিরেক্টরিটি উপস্থিত হওয়ার জন্য ডিরেক্টরিটি পেয়েছে, তবে এটি খালি রয়েছে।

আমি যদি এখন চেষ্টা করি

git submodule update

আমি পাই

fatal: Needed a single revision 
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'

যদি আমি চেষ্টা করি

git submodule foreach git pull

আমি পাই

Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.

আমার .git / কনফিগারেশনে আমার কাছে এটি রয়েছে:

[submodule "external_libraries/BEACHhtml"]
    url = git@github.com:interstar/BEACHhtml.git

আমার .গিটমডিউলগুলিতে আমার এটি রয়েছে:

[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = git@github.com:interstar/BEACHhtml.git

কেউ কি ধারণা পেয়েছে কি অনুপস্থিত?

উত্তর:


189

দেখে মনে হচ্ছে যে এখন (2019) সর্বশেষতম জিআইটি ক্লায়েন্ট ইনস্টল করা নীচের মন্তব্য অনুসারে সমস্যার সমাধান করতে পারে। এটি আপাতত সেরা সমাধান হওয়া উচিত।


আপনার মতো আমারও সমস্যা আছে। এটি গিতে একটি বাগ: http://git.661313.n2.nabble.com/BUG-git-submodule-update-is-not-fail-safe-td7574168.html

সংক্ষেপে, আপনার সমস্যার জন্য, চেষ্টা করুন:

# rm -rf external_libraries/BEACHhtml
# git submodule update

মনে হয় পূর্ববর্তী চেকআউট ফোল্ডারে কোনও সমস্যা আছে, এটিকে সরিয়ে ফেলুন এবং আপডেট পুনরায় সমস্যার সমাধান করে।


4
আমার জন্য এটি একটি ফাঁসি ঝাঁকুনি ছিল যা ফোল্ডারটি লক করে রেখেছিল
মিহাই তিমার

32
আমি উভয় submodule worktree (মুছে ফেলার জন্য ছিল ext/blah) এবং নীচের ম্যাচিং ফোল্ডারের GIT_DIR( .git/modules/ext/blah)।
তোবু

4
আমার বিশেষ ক্ষেত্রে git submodule updateআমার সিআই সার্ভারে ব্যর্থ হতে থাকে কারণ এটি চেয়েছিল যে কেউ আরএসএ কী গ্রহণ করতে পারে (সিআই সার্ভার সাধারণত https সংযোগ ব্যবহার করে এবং প্রথমবারের মতো কোনও সাবমডিউলটি এসএসএস সংযোগে টেনেছিল)। আশা করি এটি কারও এক ঘন্টা হেড স্ক্র্যাচ করে বাঁচায়!
মাভেরিক


7
2017 চেক ইন, এখনও উপস্থিত।
william.taylor.09

4

আমার এই সমস্যাটি ছিল (ফ্ল্যাঙ্ক নেটওয়ার্ক তাই আমি সাবমডিউল চেকআউটটি এভাবে ফেলেছি) এবং আমি এই স্ক্রিপ্টটি তৈরি করে এটির সমাধান করেছি (এটির নাম git-submodule-fixদিয়েছি যাতে আমি এটি চালিয়ে যেতে পারি git submodule-fix)

#!/bin/bash 

for arg 
do 
  echo $arg 
  find . -name "`basename $arg`" | grep "$arg\$" | xargs rm -fr
done

আপনি যদি এটি থেকে একটি পেতে git submodule update

fatal: Needed a single revision
Unable to find current revision in submodule path 'some/submodule/path'

কর

git submodule-fix some/submodule/path
git submodule update

3

2 ডিরেক্টরি মুছে ফেলা এবং সাবমোডিয়ুল পুনরায় সংশোধন করে সমাধান করা:

  1. যান external_libraries/BEACHhtmlএবং .gitফাইল দেখুন। এটির বিষয়বস্তুর মতো কিছু হওয়া উচিতgitdir: ../../.git/modules/external_libraries/BEACHhtml
  2. উভয় external_libraries/BEACHhtmlএবং .git/modules/external_libraries/BEACHhtmlডিরেক্টরি মুছুন ।

এখন থেকে git submodule updateত্রুটি ছাড়াই রান।


আপনাকে git submodule initআগে চালানোর দরকার হতে পারে git submodule updateযাতে সাবমডিউলটি পুনরায় আরম্ভ হয়, তবে এটি কাজ করবে।
পালেট

1

আপনি যদি 2019 বা তার পরে পড়ছেন তবে কেবল গিট ক্লায়েন্ট আপডেট করুন। আমার জন্য কাজ করেছেন।


0

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

আমি সন্দেহ করছি যে আপনি কোনও শাখা বা পুরানো সংশোধনাস্থলে গিয়েছেন যেখানে সাবমডিউলটি সংজ্ঞায়িত হয়নি।

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


0

একটি প্রকল্পের সাবমডিউল নিয়ে আমার একই সমস্যা ছিল। আমি যখন সাবমডিউলটি আলাদাভাবে ক্লোন করার চেষ্টা করেছি তখন এটি ভাল কাজ করেছে।

আমি উপরের সমস্ত উত্তর চেষ্টা করেছি, কিন্তু সাফল্য ছাড়াই (গিট সাবমডিউল আপডেট, ..., সাবমডিউল ফোল্ডারগুলি সরিয়ে, ...)।

এই মুহুর্তে গিটটি আপডেট করার পরে (গিট -১.7.১১-পূর্বরূপ २०१২০১০ থেকে) সর্বশেষ সংস্করণে (গিট-১.৮.১.২-পূর্বরূপ २०१30০২০২০১৮)। আশ্চর্যের বিষয় হল আমার সহকর্মীদের আরও পুরানো সংস্করণ ছিল, কোনও সমস্যা ছাড়াই কাজ করেছে, তবে তারা ম্যাকে ছিল। আমি Win7 64 বিট এ আছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.