গিথুব-এ ডিফল্টের চেয়ে আলাদা শাখায় পুলের অনুরোধটি মার্জ করুন


122

গিথুব হোস্ট করা আমার রেপোতে একটি টান অনুরোধ আসে। ডিফল্টরূপে এটি masterশাখায় একীভূত হয় ।

কোন শাখায় পরিবর্তনগুলি একীভূত হবে তা পরিবর্তনের জন্য আমার কি কোনও উপায় আছে?

উত্তর:


86

15.08.2016 পর্যন্ত গিটিহাব জিইউআইয়ের মাধ্যমে একটি টান অনুরোধের লক্ষ্য শাখাটি পরিবর্তনের অনুমতি দেয়। Editশিরোনামের পাশে ক্লিক করুন , তারপরে ড্রপডাউন থেকে শাখাটি নির্বাচন করুন।

স্ক্রিনশট

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


1
এটি এই প্রশ্নের সঠিক উত্তর হওয়া উচিত (গিটহাব অর্থাৎ আপগ্রেডের পরে)।
অগস্ট

এই বৈশিষ্ট্যটির আর উপস্থিতি নেই বলে মনে হয় (2018-02-15 হিসাবে), তাই না? সাম্প্রতিক টানার অনুরোধে টার্গেট ব্রাঞ্চটি সোজা সংগ্রহস্থল / শাখা হিসাবে হালকা নীল পটভূমিতে একই নীল ফন্টে প্রদর্শিত হবে এবং কোনও বোতাম নয়।
cgogolin

12
আহ! এটা করে! প্রথমে প্রথমে "সম্পাদনা" এ ক্লিক করতে হবে (যা উপরের স্ক্রিনশট থেকে সুস্পষ্ট নয়)। আমি এটি উপেক্ষা করেছি। দুঃখিত।
cgogolin

@ cgogolin এটি নির্দেশ করার জন্য ধন্যবাদ - আমি আপনার মন্তব্যটি পড়া না করে এবং সম্পাদনা বোতামটিতে ক্লিক না করা পর্যন্ত আমি খুব বিভ্রান্ত হয়ে পড়েছিলাম।
mhucka

গিথুব সতর্ক করে দিয়েছেন যে "আপনি যখন আপনার টানার অনুরোধের বেস শাখাটি পরিবর্তন করবেন তখন কিছু চুক্তি সময়রেখা থেকে সরানো হতে পারে।" এবং "পুরানো বেস শাখা থেকে কিছু চুক্তি সময়রেখা থেকে সরানো হতে পারে।" এর মানে কি কোন ধারণা?
ম্যাথিয়াস ফ্রিপ

55

দাখিলকারীরা যখন টানার অনুরোধটি প্রকাশ করবে তখন তারা তা পরিবর্তন করতে পারে, তবে তারা একবার এটি প্রকাশ করলে আপনি এটি পরিবর্তন করতে পারবেন না।

অন্যদিকে, আপনি ম্যানুয়ালি তাদের শাখাটি মার্জ করতে পারেন এবং পুশ করতে পারেন, যা আমি অর্ধ-নিয়মিত ভুল চিহ্নযুক্ত পুলের অনুরোধগুলির জন্য করি।

আপনি টান অনুরোধের উপাদানগুলির সাথে কাজ করতে hubরত্নটিকে সহায়ক বলে মনে করতে পারেন ।

সেই রত্নটি ম্যানুয়াল প্রক্রিয়াটি গুটিয়ে রাখে, যা হ'ল:

  1. আপনার স্থানীয় চেকআউটে কাঁটাচামচের জন্য একটি রিমোট যুক্ত করুন
  2. দূরবর্তী আনুন।
  3. git checkout ${target_branch} && git merge ${remote}/${branch}
  4. git push origin ...

1
আমি যদি ম্যানুয়ালি একত্রী হয়ে ধাক্কা দিই, তবে কি গিথুব বুঝতে পারবেন যে টানার অনুরোধটি কার্যকরভাবে শেষ হয়েছে? কোনও দূরবর্তী পৃথক রেপো (কাঁটাচামচ) থেকে কীভাবে মার্জ করবেন সে সম্পর্কে কোনও পয়েন্টার?
ইয়োনোক

3
আমি নিশ্চিত নই, তবে সরাসরি না - কারণ পরিবর্তনটি লক্ষ্য শাখায় একীভূত হয় নি, সুতরাং সংজ্ঞায়িত হিসাবে টান অনুরোধটি সম্পন্ন হয়নি। আপনাকে এটি ম্যানুয়ালি বন্ধ করতে হবে। পয়েন্টার হিসাবে, সম্পাদিত মন্তব্য দেখুন।
ড্যানিয়েল পিটম্যান

আমি git merge --no-ff ...@ গুইলারমো ম্যানসিলা হিসাবে তার উত্তরে উল্লেখ হিসাবে ব্যবহার করার পরামর্শ দেব ।
jjmontes

3
"একবার তারা এটি প্রকাশ করলে আপনি এটিকে পরিবর্তন করতে পারবেন না" - অগাস্ট 2016 এর পরে আর হবে না! নীচে @ মালেয়াসের উত্তর দেখুন: stackoverflow.com/a/38985999/12484
জন স্নাইডার

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

14

অন্যান্য জবাব দ্বারা উল্লিখিত হাব রত্ন ব্যবহারের বিকল্প হ'ল স্থানীয়ভাবে অনুরোধগুলি একীভূত করতে কমান্ড লাইনটি ব্যবহার করা যা আপনাকে এটি করতে দেয়:

$ git fetch origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git push origin *target_branch*

উপরের কমান্ডগুলি কেবল তখনই কাজ করে যদি আপনি প্রথমে আপনার .git/configফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করেন :

fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/*

এটি যা আপনাকে সমস্ত পুল অনুরোধ ডাউনলোড করতে দেয় । যেহেতু বিশাল সংগ্রহের জন্য এটি পছন্দসই নয়, তাই গিটহাব git fetch origin pull/ID/head:BRANCHNAMEসিন্ট্যাক্স বৈশিষ্ট্যযুক্ত নির্দেশাবলীতে পরিবর্তন করেছে , যা কনফিগারেশন ফাইলের পরিবর্তন এড়ানো যায় এবং কেবল সেই একক টানার অনুরোধটি ডাউনলোড করে।


8

যদিও আপনি বিদ্যমান পুলের অনুরোধটি আপনার না হিসাবে এটি পরিবর্তন করতে পারবেন না তবে সম্পর্কিত উত্সের সংগ্রহস্থলটি এখনও উপস্থিত থাকলে আপনি সহজেই নতুন একটি তৈরি করতে পারেন - হ্যাঁ, এটি অন্য কারওর হলেও।

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

তারপরে আপনার নিজের ভাণ্ডারে ফিরে যান এবং নতুন টানার অনুরোধ গ্রহণ করুন। ভাল খবর!


যদি তারা তাদের ভান্ডারগুলি পরিবর্তন করে থাকে তবে এটি কি কাজ করে? কীভাবে কেউ নিশ্চিত করে যে এটি "একই রকম প্রতিশ্রুতিবদ্ধ?"
ragerdl

@ ইরগারডল - আপনি যদি 'ফিফার-প্রতি-শাখা' মডেল ব্যবহার করে বিকাশ করছেন তবে আপনি একটি প্রবাহের শাখার বিপরীতে একটি শাখা দিয়ে একটি পিআর তৈরি করতে পারেন এবং এতে একই কমিট থাকতে হবে।
গেরলিংগুই

2
কোনও স্থানীয় রেপো অ্যাক্সেস না করে সরাসরি গিটহাবের মাধ্যমে এটি করার একমাত্র উপায়।
kopischke

8

ড্যানিয়েল পিটম্যানের সমাধানে কোনও অসুবিধা নেই, তবে আমি এই মার্জগুলিকে "দ্রুত ফরোয়ার্ড" হিসাবে গণ্য করব না, এটির জন্য 3 ধাপের পরিবর্তন:

git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}

ব্যবহার করে --no-ff, ইতিহাস পড়া আরও সহজ হবে। এটি স্পষ্টতই বলবে যে $nকমিটগুলি এসেছে $branch, এবং যদি আপনার সেই শাখায় করা কিছু ফিরিয়ে দিতে হয় তবে এটি আপনার জীবনকে আরও সহজ করে তুলবে।

ইওনোকের প্রশ্নের উত্তর এবং অতিরিক্ত টিপ দিতে:

মার্জ করার পরে, আপনার গিট ক্লিপ আপনাকে বার্তা লেখার জন্য অনুরোধ জানাবে, সাধারণত একটি জেনেরিক বার্তা এমন কিছু বলা দেখাবে

রিমোট-ট্র্যাকিং শাখা 'ব্যবহারকারী / তাদের-শাখা' আপনার শাখায় মার্জ করুন

সেই বার্তাটি সম্পাদনা করার বিষয়টি নিশ্চিত করুন এবং টানা অনুরোধ নম্বরটির একটি রেফারেন্স অন্তর্ভুক্ত করুন। তা হ'ল: (ধরে রাখার অনুরোধের নম্বরটি 123)

রিমোট-ট্র্যাকিং শাখা 'ব্যবহারকারী / তাদের-শাখা' আপনার শাখায় মার্জ করুন

refs # 123 যা কিছু সমাধান করছে ...

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

আমি যা বলতে চাইছি তার একটি স্ক্রিনশট এখানে।

এখানে চিত্র বর্ণনা লিখুন


6

এটি করতে আপনার সংগ্রহস্থলের হোম পৃষ্ঠায় যান, শাখাগুলিতে ক্লিক করুন এবং আমার ক্ষেত্রে "দেব" এর ক্ষেত্রে মাস্টার থেকে ডিফল্ট শাখাটি অন্য কোনও কিছুতে পরিবর্তন করুন।

এরপরে, যখনই কেউ একটি টানুন অনুরোধ তৈরি করে mergeবোতামটি স্বয়ংক্রিয়ভাবে অনুরোধটিকে মাস্টার না করে "দেব" রূপান্তরিত করে।

এখানে চিত্র বর্ণনা লিখুন


টাইপ
ফিক্সের

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