গিটহাবে কীভাবে একাধিক টানার অনুরোধগুলি খুলবেন


139

আমি যখন কোনো খুলতে টান অনুরোধ উপর GitHub
আমার শেষ অনুরোধের পর থেকে সমস্ত প্রতিশ্রুতি এবং সমস্ত নতুন স্বয়ংক্রিয়ভাবে এই অনুরোধটিতে যুক্ত করা হয়েছে

কোন কমিট যুক্ত হয়েছে এবং কোনটি নয় তা আমি নিয়ন্ত্রণ করতে পারি না।
আমি যখন অন্য টানার অনুরোধটি খোলার চেষ্টা করি তখন আমি একটি "ওফস! ইতিমধ্যে একটি পুল অনুরোধ রয়েছে" ত্রুটি পাই।

কমান্ড লাইনের সাথে গোলমাল না করে একাধিক টানার অনুরোধগুলি খোলার সহজ উপায় কি?

উত্তর:


116

টান অনুরোধগুলি একটি শাখার উপর ভিত্তি করে।
একাধিক কমিটের জন্য একটি টান অনুরোধ খোলার একমাত্র উপায়:

  1. তাদের নিজস্ব শাখায় বিচ্ছিন্ন করুন ।
  2. সেখান থেকে টানার অনুরোধগুলি খুলুন।

3
ঠিক আছে শীতল, আমি ভেবেছিলাম এটি কেবল মাস্টারের সাথেই ছিল। সুতরাং আপনি যা বলতে চাইছেন তা হল আমি অনেকগুলি শাখা তৈরি করতে পারি (অর্থাত: গিট ফ্লো বৈশিষ্ট্য) এবং তাদের প্রত্যেকের জন্য অনুরোধ করতে পারি ... চেষ্টা করতে যাচ্ছি!
জিয়ান জুনেদিন

8
আমি সবেমাত্র খুঁজে পেয়েছি যে শাখাটি পূর্ববর্তী কমিটগুলির ইতিহাস সংরক্ষণ করেছে, সুতরাং প্রবাহের বিরুদ্ধে একটি টানা অনুরোধটিতে এখনও সমস্ত কমিট অন্তর্ভুক্ত রয়েছে।
ইয়েল ghEEz

2
হাই @ ইল-গিজ, আপনি কী করতে পারেন তা বুঝতে পেরেছেন? অন্যান্য শাখা থেকে পরিবর্তনগুলি না দেখিয়ে কীভাবে বিচ্ছিন্ন পিআর তৈরি করা যায়?
জোনাথন ক্রস

3
এটি সমস্যার সমাধান করে না: যখন আমি জনসংযোগ তৈরির চেষ্টা করি তখন উভয় শাখা (কমপক্ষে একটি করে প্রতিশ্রুতি দিয়ে) তুলনা করা হয়। আমি কি ভুল করছি?
মেরোজেস

1
@ ইলঘিজে আপনার একটি নতুন শাখা তৈরি করা উচিত, গিরি চেরি- এই শাখায় আপনি চান সমস্ত কমিট বেছে নিন এবং তারপরে এই শাখা থেকে একটি অনুরোধ করুন request এটি গিটের একটি অত্যন্ত গুরুত্বপূর্ণ নকশা বৈশিষ্ট্য যা প্রতিটি প্রতিশ্রুতি তার পূর্বের প্রতিশ্রুতিগুলির উপর নির্ভর করে এবং গিটে অঙ্গীকারবদ্ধ হওয়া কেবল প্যাচ হিসাবে না হওয়া উচিত, তবে এই প্যাচটির আগে কী প্যাচ প্রয়োগ করা হয়েছিল তা জেনে প্যাচ হিসাবে হওয়া উচিত। সুতরাং এই কারণেই কারও নতুন কমিটি সহ একটি নতুন শাখা তৈরি করা উচিত, যার বিভিন্নতা এখনও একইরকম, তবে যার পূর্ববর্তী কমিটির লিঙ্কগুলি আলাদা।
এমডি

11

এটি করার সবচেয়ে সহজ উপায় হাব কমান্ড ( https://github.com/defunkt/hub ) দিয়ে।

আপনার টপিক শাখা (এই উদাহরণে "বৈশিষ্ট্য") থেকে আপনি একটি টানার অনুরোধ তৈরি করতে চান, আপনি কেবল চালাতে পারেন:

git pull-request

(মনে রাখবেন প্রথমে আপনার শাখাটি ধাক্কা দিতে হবে!)

এবং এটি "YOUR_USER: বৈশিষ্ট্য" এর জন্য গিটহাবে একটি নতুন টানার অনুরোধ খুলবে।

আপনি যদি ইতিমধ্যে গিটহাবে একটি সমস্যা তৈরি করেছেন, আপনি এমনকি বিদ্যমান সমস্যার সাথে একটি টান অনুরোধ সংযুক্ত করতে পারেন (এমন কিছু যা আপনি ওয়েব ইউআই থেকে করতে পারেন না):

$ git pull-request -i 123
[ attached pull request to issue #123 ]

2

আপনি আসলে অন্য কোনও শাখা তৈরি না করে এটি করতে পারেন, তবে চারপাশে খেলতে কিছুটা সময় লাগে।
পদক্ষেপ এখানে:

  1. আপনি টানতে চান এমন দুটি কমিট রেঞ্জ সনাক্ত করুন। উদাহরণস্বরূপ আমি যা ব্যবহার করব তা এখানে:
    (অন্যান্য / মাস্টার) এ -> বি -> সি -> ডি -> ই (আপনার / মাস্টার)
    আসুন আমরা ধরে নিই যে আপনি একটি অনুরোধে বি এবং সি টানতে চান এবং ডি এবং অন্য একটিতে ই।
  2. একটি টান অনুরোধ করুন। বাম পাশের ("বেস") কমিট এ। ডান পাশের ("মাথা") এর জন্য সি এর কমিট নম্বরটি টাইপ করুন
  3. আপনার প্রথম অনুরোধের জন্য বিবরণটি লিখুন।
  4. অন্য একটি অনুরোধ করুন। বেসের জন্য, সি এর কমিট নম্বরটি টাইপ করুন এবং মাথার জন্য, E (আপনার / মাস্টার) লিখুন।
  5. বর্ণনা লিখুন।

আমি এটি দেখতে হিসাবে, টান অনুরোধটি একটি শাখা পয়েন্ট হিসাবে প্রতিশ্রুতিবদ্ধ সি দেখে। অথবা অন্যকিছু.


আপনার / মাস্টার থেকে কমিট নম্বর যোগ করা সত্ত্বেও আপনাকে অবশ্যই অন্য / মাস্টারকে বাম দিক হিসাবে ছেড়ে যেতে হবে। এছাড়াও এই পদ্ধতিটি আপনাকে মার্জ করার অনুরোধে নতুন কমিট যোগ করার অনুমতি দেয় না, যদি আরও কিছু পরিবর্তন প্রয়োজন হয়।
ফ্রিস্কো

আমি গিথুব সম্পর্কিত কিছু তথ্যের বিপরীতে এই উত্তরে বিভিন্ন ধরণের ফলোআপ পোস্ট করেছি, দেখুন স্ট্যাকওভারফ্লো
মার্ক বনেট

আমি দেখতে পাচ্ছি এটি দুটি পিআর তৈরি করবে যা সঠিক দেখায়, যার মধ্যে প্রতিটি একেবারে কাঙ্ক্ষিত কমিট থাকে। তবে, স্পষ্ট করে বলতে গেলে, তারা একীভূত হওয়ার পরে কি এটি সঠিক কাজ করে? হিসাবে, আমি দেখতে পাচ্ছি যে প্রথম জনসংযোগ সঠিকভাবে বি এবং সিটিকে অন্য / মাস্টারের সাথে একীভূত করবে। কিন্তু যখন ২ য় পিআর একীভূত হয়, তখন এটি কীভাবে জানবে যে কোন শাখায় মার্জ হবে? (যেহেতু এটি কমিট 'সি' তে তৈরি হয়েছিল, অন্য / মাস্টার নয়) পিআরগুলি একীভূত হওয়ার জন্য কোন আদেশের বিষয়টি বিবেচনা করে? (সম্ভবতঃ তাই)
জোনাথন হার্টলি

1

আপনি যখন প্রাথমিকভাবে পুলের অনুরোধটি তৈরি করতে যান, আপনি যদি নতুন টানার অনুরোধের জন্য দুটি পৃথক ফর্ম খোলেন এটি আপনাকে এগুলি তৈরির অনুমতি দেবে যতক্ষণ না সেগুলি বিভিন্ন শাখাগুলিতে মার্জ হওয়ার জন্য নির্দেশ করা হয়। উদাহরণস্বরূপ, আমি দুটি পৃথক অনুরোধ করতে পারলাম, একটিতে মাস্টারে মার্জ করা এবং অন্যটি পরীক্ষায় মার্জ করতে।


1

আমি গিট এবং গিটহাবের কাছে নতুন এবং ওপি-র মতো একই প্রশ্ন ছিল।

আমি একটি সমাধান পেয়েছি, যা সম্ভবত ওপি-র সময়ে পাওয়া যায়নি।

পরিস্থিতি: আপনার মধ্যে তিনটি পরিবর্তন রয়েছে এবং আপনি প্রতিটিটি পূর্ববর্তী থেকে তৈরি করা এবং প্রত্যেকের নিজস্ব টানার অনুরোধ (জনসংযোগ) পেতে চান।

সমস্যা: আপনি যখন প্রথম আরআর তৈরি করেন যা মাস্টার হিসাবে বিকাশকে টানতে চেষ্টা করে, প্রতিটি জিনিস সূক্ষ্ম দেখায়, তবে তারপরে আপনি দ্বিতীয় পিআর-র জন্য পরিবর্তনগুলি করেন, এবং সেগুলি মার্জ করুন (একই শাখা ব্যবহার করে) সমস্ত পরিবর্তন একই পিআর-তে হয় ।

মিনি সলিউশন: একটি নতুন শাখা তৈরি করুন

git branch mini_change_2
git checkout mini_change_2

এখন আপনি কোডটি গিটহাবের দিকে ঠেলে আর পিআর তৈরি করেন তবে এটি মিনি_চেঞ্জ ৩ থেকে মাস্টার পর্যন্ত পুলের ডিফল্ট হয়, মাস্টার বাদে এখনও প্রথম পিআর থেকে পরিবর্তন আসে না, সুতরাং এতে PR1 এবং PR2 এর সমস্ত পরিবর্তন অন্তর্ভুক্ত রয়েছে।

সেরা সমাধান: আপনি PR2 তে কোন শাখায় মার্জ করছেন তা উল্লেখ করুন।

দ্বিতীয় জনসংযোগ তৈরি করার সময় কেবল ডিফল্টগুলি গ্রহণ করবেন না, বলুন আপনি বিকাশে mini_chnage_2 টানছেন, এটি কেবল মিনি_চেঞ্জ ৩-এ পরিবর্তনগুলি দেখায়

এখন মিনি_চেঞ্জ_3 তে নতুন একটি শাখা মিনি_চেঞ্জ_3 এবং PR তৈরি করুন।

আপনি একবারে তাদের মার্জ করা শুরু করলে সমস্যাটি আসে ... তবে এটি একটি ভিন্ন অনুশীলন।

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