অন্য গিট রেপোর ভিতরে গিট রেপো বজায় রাখুন


124

আমি যা চাই তা এখানে:

REPO-A
  /.git
  /otherFiles
  /REPO-B
    /.git
    /moreFiles

আমি ধাক্কা সক্ষম হতে চান সব remote-A এবং করতে রেপো-এ এর বিষয়বস্তু শুধুমাত্র remote-বি রেপো-বি।

সম্ভব?

উত্তর:


104

মনে হচ্ছে আপনি গিট সাবমডিউল ব্যবহার করতে চান ।

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


19
ঠিক নয়: এটি রেপোএর সমস্ত সামগ্রীকে ধাক্কা দেবে না : কেবলমাত্র একটি প্লাস বি এর একটি রেফারেন্স কিন্তু আমি আপনার উত্তরটির সমালোচনা করি না, আমি যখন
ওপি'র

1
এটি সাবমডিউলগুলির জন্য ব্যবহারের ক্ষেত্রে যথেষ্ট। REPO-A এবং REPO-B তাদের নিজস্ব অধিকার, উত্স, ইতিহাস ইত্যাদির সাথে গিট রেপো হিসাবে বিবেচনা করা হয়
ড্যামিয়েন উইলসন

2
সুতরাং আমি যদি এই অধিকারটি পড়ছি, তবে আমি স্বাধীনভাবে একটি সাবমডিউল-ডি রেপোটি খুঁজে পাই তার বাইরে সম্পূর্ণরূপে পরীক্ষা করতে পারি? আমি কীভাবে একটি ইতিমধ্যে বিদ্যমান রেপো নেব এবং অন্য প্রকল্পের সাবমডিউল হিসাবে এটি উল্লেখ করব?
জন

আমি ও.পি.-এর মতো একই সমাধান খুঁজছিলাম না, এবং আমি গণনা করছি এটি সম্ভবত একই ধরণের প্রশ্নের উত্তরের জন্য আরও বেশি অনুসন্ধান করা হয়েছে: "গিট রেপো-বি গিটের মধ্যে গিপি রেপো-বি স্থাপন করে একটি রেফারেন্স বা একটি সম্পূর্ণ অনুলিপি এম্বেড করে? গিট রেপো-বি? "
জয়া

64

আমি সর্বদা দুটি পৃথক এবং স্বতন্ত্র রেপো বজায় রাখতে সিমলিংক ব্যবহার করেছি।


8
গিট সাবমডিউলগুলি এবং গিট উপ-গাছটি কীভাবে বিভ্রান্তিকর বলে মনে হচ্ছে, এটি একটি বৈধ উত্তর।
ট্রেভর হিকি

একাধিক দূরবর্তী সংগ্রহস্থল থেকে একটি অ্যাপ্লিকেশন
সংগ্রহের

22
দুটি পৃথক ও স্বতন্ত্র রেপো বজায় রাখতে, রেপো বি রেপো এতে রাখা এবং কেবল রেপো এ এর ​​রেপো বি যুক্ত করা ঠিক হবে না .gitignore?
ফ্যাবিয়েন স্নোওয়ার্ট

1
আমি ফ্যাবিয়েনের পরামর্শ মতো কাজ করার কথা ভাবছিলাম, সেভাবে এটি করার ক্ষেত্রে কোনও সমস্যা আছে?
theonlygusti

1
আমি গিট সংগ্রহস্থলগুলিকে পৃথক রাখি এবং আরইপিও-বিতে আটকানো REPO-B এর একটি অনুলিপি (.git ছাড়াই) REPO-B এ করা পরিবর্তনগুলি অনুলিপি করি। আমি আরএসসিএনসি দিয়ে এটি করি। আমি চালানোর rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/সেখানে রেপো-বি কোনো পরিবর্তন হয় পরে
Shai

29

হ্যাঁ, আপনি যে ফাইলের ক্রমবিন্যাসটি আঁকেন তার সাথে আপনি যা করতে চেয়েছিলেন ঠিক তেমন করতে পারেন। রেপো-বি স্বতন্ত্র হবে এবং রেপো-এ সম্পর্কে কোনও জ্ঞান নেই। রেপো-এ এর নিজস্ব ফাইল এবং রেপো-বি এর ফাইলগুলির সমস্ত পরিবর্তন ট্র্যাক করবে।

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


53
আপনি কি কেবল / REPO-A/.gitignore- এ REPO-B যুক্ত করতে পারবেন না?
মিক্কেলব্রেম

2
@ মিক্কেলব্রেম আমার ঠিক একই ধারণা পেয়েছিল। আমরা বর্তমানে আমাদের মূল প্রকল্পের জন্য সাবভারিয়ন ব্যবহার করছি এবং সাবফোল্ডারগুলির মধ্যে একটিতে গিট রেপো ব্যবহার করি। এসভিএন দিয়ে আমি গিট রেপো সহ ফোল্ডারটি এসএনএন-এ কেবল যুক্ত করেছি: সম্পত্তি উপেক্ষা করুন এবং আমি নিজেকে জিজ্ঞাসা করছিলাম যে আমি গিট দিয়েও একই কাজ করতে পারি কিনা।
য়কৌবয়

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

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

1
আমি পেয়েছি যে যখনই আপনি একটি সংগ্রহস্থলে শাখাগুলি স্যুইচ করেন অন্যটি পুরো পরিবর্তনগুলির পুরো গুচ্ছ দেখতে পাবে, তবে "রেপো-এ-তে শাখা প্রশাখা কেন খারাপ হবে (ফোল্ডার ইত্যাদি অপসারণে সমস্যা হবে)?" ধন্যবাদ!
ব্যবহারকারী2688151

2

আপনি যা চান তা অর্জন করতে পারেন (যে REPO-A রেপোতে কেবলমাত্র একটি রেফারেন্সের পরিবর্তে ফোল্ডার REPO-B এর সমস্ত ফাইল রয়েছে) "গিট-সাবরেপো" ব্যবহার করে:

https://github.com/ingydotnet/git-subrepo

এটি এখনও কাজ করে যদি আপনার কিছু অবদানকারীর সাবরেপো কমান্ড ইনস্টল না থাকে; তারা সম্পূর্ণ ফোল্ডার কাঠামো দেখতে পাবে তবে সাবেরপোসে পরিবর্তন করতে সক্ষম হবে না।

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