অন্য রেপুর শাখায় গিট রেপো মার্জ করুন


120

রেপো ফু ও রেপো বার দেওয়া হয়েছে। আমি বারকে ফু এর সাথে একত্রীকরণ করতে চাই, তবে কেবল একটি পৃথক শাখায় ডেকে আছি , যাকে বলে baz

git checkout -b baz <= বার রেপো এখানে রাখুন।

উত্তর:


230

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

$ ls
foo bar

fooভান্ডারগুলিতে পরিবর্তন করুন :

$ cd foo

barরিমোটারিটি রিমোট হিসাবে যুক্ত করুন এবং এটি আনুন:

$ git remote add bar ../bar
$ git remote update

একটি নতুন শাখা তৈরি করুন bazমধ্যে fooউপর যাই হোক না কেন আপনার বর্তমান শাখা ভিত্তিক সংগ্রহস্থলের:

$ git checkout -b baz

সংগ্রহস্থল somebranchথেকে শাখাকে barবর্তমান শাখায় মার্জ করুন :

$ git merge --allow-unrelated-histories bar/somebranch

( --allow-unrelated-historiesগিট সংস্করণ ২.৯ এর পূর্বে প্রয়োজন হয় না)


21
গিট ২.৯ যেহেতু আপনাকে সম্ভবত --allow-unrelated-historiesগিট মার্জ কমান্ড যুক্ত করতে হবে।
ড্রসিল

2
@ ড্রেসিলের মন্তব্যে তথ্য: github.com/git/git/blob/master/Docamentation/RelNotes/…
গাটেক থমাস

10
আমি কী করছি তা আমার কোনও ধারণা নেই এবং আমি ফু / বার স্থানধারক সহ সত্যই এটি পড়তে পারি না। এটিকে বাস্তব জীবনের উদাহরণের সাথে (যথা উপযুক্ত লিঙ্কগুলির মতো এবং এর সাথে) কেউ এটিকে সম্পাদনা করতে পারে?
rien333

ওহ, এই দুর্দান্ত। আমি এটিকে একটি উপ-ডিরেক্টরিতে যুক্ত করতে পছন্দ করব এটি আলাদা হতে পারে না, তাই না? আমি সেই পদক্ষেপটি যুক্ত করতে চাই।
macetw

1
আমি একত্রীকরণের দ্বন্দ্ব পেয়েছি। যাইহোক আপনি একটি নতুন শাখায় একীভূত করতে বাধ্য করতে পারেন?
নোমোডোদা

41

"রিয়েল-লাইফ" কমান্ড সহ আপডেট হয়েছে:

আপনার রেপো ডিরেক্টরি থেকে শুরু করুন, আপনার কার্যকরী অনুলিপি পরিষ্কার হয়েছে তা নিশ্চিত করুন (কোনও ফাইল পরিবর্তন হয়নি, যুক্ত বা সরানো হয়নি)।


একটি নতুন শাখা করুন:

git checkout -b <my-branch>

গৌণ দূরবর্তী যুক্ত করুন, তারপরে এটি আনুন:

git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update

তাদের বর্তমান শাখায় তাদের একটি শাখা মার্জ করুন:

git merge <repo-name>/<their-branch>


আপনি কী চান তা যদি না জানেন <their-branch>তবে তার জন্য যানmaster

আপনি যদি নিশ্চিত হন যে আপনি সমস্ত দূরবর্তী পরিবর্তনগুলি গ্রহণ করতে চান এবং দ্বন্দ্বগুলি এড়াতে চান (আপনার ওভাররাইট ) তবে আপনি -X theirsবিকল্প হিসাবে নির্দিষ্ট করতে পারেনgit merge শেষ ধাপে ।

আপনি যদি এটি একটি উপ-ডিরেক্টরিতে যুক্ত করতে চান তবে সম্ভবত আপনার সম্ভবত গিট সাবমডিউল ব্যবহার করা উচিত


3

লারস্ক থেকে গাইড ব্যবহার করে, সোর্স ট্রি ব্যবহার করে আমি এটি করতে সক্ষম হয়েছি।

  1. গন্তব্য সংগ্রহস্থলে একটি শাখা তৈরি করেছে
  2. সেটিংস বোতামটি চাপিয়ে এবং উত্স সংগ্রহস্থল যুক্ত করে রিমোট হিসাবে উত্স সংগ্রহস্থলীর যোগ করা হয়েছে।
  3. উভয় সংগ্রহস্থলের শাখা এখন শাখার তালিকায় প্রদর্শিত হয়। আমি উত্স সংগ্রহস্থল থেকে একটি নতুন শাখা আমার নতুন গন্তব্য সংগ্রহস্থলের শাখায় মার্জ করার জন্য মার্জ সরঞ্জামটি ব্যবহার করেছি।
  4. সোর্স ট্রি বা আমার আইডিই ব্যবহার করে যে কোনও বিরোধের সমাধান করুন
  5. আমার শাখায় পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ।
  6. সেটিংস বোতামটি ব্যবহার করে দূরবর্তী তালিকা থেকে উত্স সংগ্রহস্থলটি সরান।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.