গিথুবটিতে একটি টানুন অনুরোধ সন্ধান করুন যেখানে একটি প্রতিশ্রুতিটি মূলত তৈরি হয়েছিল


171

কোনও রেপোতে পরিবর্তন বা পরিবর্তনগুলির সেটকে ঘিরে বৃহত্তর চিন্তাভাবনা বোঝার জন্য পুল অনুরোধগুলি দুর্দান্ত। উত্সের ক্ষুদ্র পরমাণু পরিবর্তনের পরিবর্তে কোনও প্রকল্পকে দ্রুত "গ্রুক" করার একটি দুর্দান্ত উপায় হ'ল টান অনুরোধগুলি পড়া, আপনি যৌক্তিক পরিবর্তনের বৃহত্তর গ্রুপিং পান। আপনার কোডের লাইনগুলি সম্পর্কিত "স্টাঞ্জাস" এ সহজেই পাঠ্য করা সহজ করার জন্য সংগঠিত করার সাথে সমান।

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


1
+1 এটি কার্যকর হয় যদি আপনি কোনও প্রকল্প কাঁটাচামচ করে থাকেন এবং আপনার চারপাশে কোনও পুরানো ওয়ার্ক শাখা বসে থাকে এবং আপনি আর কখনও মনে করেন না যে আপনি এর জন্য কোনও পিআর করেছেন কিনা।
স্টিভ ক্লে

উত্তর:


225

আপনি কেবল গিথুব এ গিয়ে অনুসন্ধান বারে এসএইচএ প্রবেশ করতে পারেন, নিশ্চিত করুন যে আপনি বামদিকে "সমস্যাগুলি" লিঙ্কটি নির্বাচন করেছেন।

13 জুলাই 2017 আপডেট হয়েছে

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


কমিটের লিঙ্কে ক্লিক করে পিআর সন্ধানের উদাহরণ

আপনার যদি কমিটমেন্ট এসএএএ এবং অন্য কিছু না থাকে এবং এর জন্য খনন করতে না চান তবে কেবল /commit/[commit SHA]রেপো ইউআরএল যুক্ত করুন, এবং কমিট পৃষ্ঠাটি উপস্থিত থাকলে পিআর লিঙ্কটি দেখতে পাবেন। উদাহরণস্বরূপ, যদি রয়েছে SHA 52797a7a3b087231e4e391e11ea861569205aaf4 এবং রেপো হয় https://github.com/glimmerjs/glimmer-vm , তারপর যেতে https://github.com/glimmerjs/glimmer-vm/commit/52797a7a3b087231e4e391e11ea861569205aaf4


আমি e4077951এটির মতো একটি সংক্ষিপ্ত এসএইচএ নিয়ে কাজ করতে পারি না , এটি কি এখনও আপনার জন্য কাজ করে?
ম্যাট স্যান্ডার্স

@ রুস্টি টমস এটি কাজ করে, তবে যখন আপনি উল্লিখিত মত একটি প্রতিশ্রুতিবদ্ধ হ্যাশটি অনুসন্ধান করেছেন, [ github.com/wso2/carbon-kernel/… এটি আমাকে দুটি পুল অনুরোধ সরবরাহ করে যা উভয়ই একই প্রতিশ্রুতি মাস্টারের সাথে একীভূত হয়ে গেছে। এ জাতীয়
দৃশ্যে

@RustyToms কীভাবে আমরা API এর মাধ্যমে এই acheive করতে
Kasun Siyambalapitiya

1
@ ম্যারাথন এখনই এটি করার আরও সহজ উপায় আছে, আমি উত্তরটি আপডেট করব
রুটিটাইমস

1
যদি কোনও পিআর-এর কোনও রেফারেন্স না থাকে তবে আমি কী সিদ্ধান্ত নিতে পারি যে সেখানে জনসংযোগ ছিল না? অর্থাত্ কমান্ডটি সরাসরি শাখায় করা হয়েছিল (সাধারণত master)?
এরিক 11

53
git config --add remote.origin.fetch +refs/pull/*/head:refs/remotes/origin/pull/*
git fetch origin
git describe --all  --contains <COMMIT>

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

এটি গিটকে প্রকৃত শাখাগুলির সাথে টানুন অনুরোধ সম্পর্কিত তথ্য পেতে সহায়তা করবে। এগুলি রিমোট-ট্র্যাকিং শাখার মতো প্রদর্শিত হবে origin/pull/123। একবার যে কাজ করা হয় আপনি ব্যবহার করতে পারেন git describeসঙ্গে --allএবং --contains প্রথম শাখা যা হয়েছে রেফারেন্সড কমিট দেখানোর জন্য অপশন।

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


আমি প্রত্যাখ্যানিত পিআরসে সমস্ত কমিটগুলি ডাউনলোড করে এই ফলাফলগুলি ধরে নিই। pull/*/headব্লবগুলি ছাড়া কমিটের তালিকা আনার কোনও উপায় নেই ? এর পরে কীভাবে একজন "পরিষ্কার" করবেন (উত্সগুলি পুনরায় কনফিগার করবেন)?
স্টিভ ক্লে

1
এই জানা মহান; আমার কোনও ধারণা ছিল না গিটহাব এগুলিকে প্রকৃত গিট বস্তু হিসাবে অনুসরণ করেছে তবে এটি সঠিক ধারণা দেয়। বিটিডাব্লু বলতে কি আপনার কনফিগার কমান্ডে "উত্স" এর পরিবর্তে "আপস্ট্রিম" ব্যবহার করতে চাইছেন?
টোবিয়াস জে

1
@ টবিজে এর ব্যবহার upstreamসত্যিই একটি ভুল ছিল। আমি এমন একটি সংগ্রহস্থল থেকে অনুলিপি করেছিলাম যেখানে সেই কনফিগারেশনটি ছিল যেখানে রিমোটটির নামকরণ করা হয়েছিল upstreamএবং originরিমোটের নাম হিসাবে আরও সাধারণ ব্যবহার করতে এটি পরিবর্তন করার সময় সেই ঘটনাটি মিস করে। আমি এটি ঠিক করার জন্য উত্তর সম্পাদনা করেছি।
কিউএকএক্স

ধন্যবাদ! তবে এটি এত জটিল। আমি আশা করি ওয়েব ইউআইতে ধারণের অনুরোধটির কোনও লিঙ্ক ছিল।
ড্যানিয়েল দারাবস

fww এর refs/remotes/origin/pr/*পরিবর্তে আপনিও চেষ্টা করতে পারেনrefs/remotes/origin/pull/*
এলাচি

21

১৩ ই অক্টোবর, ২০১৪ সাল থেকে এটি সরাসরি হওয়া উচিত:

উদাহরণ স্বরূপ:

আপনি ফাইলটির জন্য দেখতে পারেন hakimel/reveal.js/plugin/markdown/markdown.js, আমার অবদানটি এখন আরআর # 734 এর উত্স থেকে প্রসঙ্গ সহ এসেছে।

অবদান থেকে পিআর

এটি কমিটস থেকে সংযুক্ত মার্জ পুলগুলির অনুরোধগুলি থেকে আসে :

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

এতে পিআর রেফারেন্স দিয়ে কমিট করুন!

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

বরাবরের মতো, আপনি যদি প্রতিশ্রুতিবদ্ধ SHA জানেন, আপনি কমিট পৃষ্ঠাটি এড়িয়ে যেতে পারেন এবং সরাসরি টানার অনুরোধটি সন্ধান করতে পারেন ।


যখন আমি আপনাকে উল্লিখিত মত একটি প্রতিশ্রুতিবদ্ধ হ্যাশ অনুসন্ধান করেছি, [ github.com/wso2/carbon-kernel/… এটি আমাকে দুটি পুল অনুরোধ সরবরাহ করে তবে উভয়ই একই প্রতিশ্রুতি মাস্টারের সাথে একীভূত হয়ে গেছে। এই জাতীয়
দৃশ্যে

@ কাসুনসিয়াম্বলপিতিয়া নিশ্চিত নয়: আপনি এটির জন্য একটি নতুন প্রশ্ন করতে পারেন আমি সবচেয়ে সাম্প্রতিক সঙ্গে যেতে হবে।
ভোনসি

2
আমরা কি এটি APIস্তরে পেতে পারি?
কাসুন সিয়ামম্বলপিতিয়া

কাসুনসিয়াম্বলপিতি ভালো প্রশ্ন। আমি জানি না। আমি ডেভেলপার.
github.com/v3/repos/commits/#get-a-single-commit

@ এসপি আকর্ষণীয় আমি জনসংযোগের একটি তালিকা দেখছি, তবে তাদের SHA1 তাদের একীকরণের চিহ্ন হিসাবে প্রতিশ্রুতিবদ্ধ নয়।
ভনসি


3

আমি এই একই সমস্যাটি পেয়েছি এবং এখানে নথিভুক্ত pr_for_sha বাশ সহায়ক, লিখেছি:

http://joey.aghion.com/find-the-github-pull-request-for-a-commit/

এটিকে পছন্দ করুন pr_for_sha <COMMIT>এবং এটি ব্রাউজারে সম্পর্কিত গিথব পুল অনুরোধ পৃষ্ঠাটি খুলবে।


2
এই সমাধানটি অনুমান করে যে প্রতিশ্রুতি অনুসরণের নিকটতম সংশ্লেষটি হল মার্জটি যা প্রতিশ্রুতি ধারণ করে, যা অগত্যা ক্ষেত্রে হয় না।
জেসন ডেনি 18'15

@ জেসনডেন্নি অনুসরণ করে আপনি প্রদত্ত শাখায় বা সময় অনুসারে?
লেজুস

হুম, এটি কিছুক্ষণ আগে হয়েছিল, তবে আমি মনে করি সময় থেকেই বোঝাতে চাইছিলাম। সোমবার বলুন আপনি শাখা এতে একটি "এক্স" করুন, মঙ্গলবার আপনি শাখা বিতে একটি অঙ্গীকারবদ্ধ করে শাখা বিকে মাস্টার হিসাবে মার্জ করুন, বুধবার আপনি শাখা এটিকে মাস্টার হিসাবে মার্জ করুন। আপনি যদি এই স্ক্রিপ্টটি মাস্টার ব্রাঞ্চের জন্য পিআর প্রতিশ্রুতিবদ্ধ "এক্স" উপস্থিত থাকাকালীন অনুসন্ধানের জন্য ব্যবহার করেছিলেন তবে আমি নিশ্চিত যে এটি আপনাকে ভুলভাবে শাখা বি বলতে চাইবে, তবে নিজের জন্য ডাবল চেক করুন।
জেসন ডেনি

git logকাজ করার জন্য আদেশ পেতে পারে না । git log --merges --ancestry-path --oneline 66100ab0..master- fatal: ambiguous argument '66100ab0..master': unknown revision or path not in the working tree.-git version 2.25.0
জিয়ানফ্রেঙ্কো পি।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.