গিটে একীভূত করার পিতামাতাকে কীভাবে পাবেন?


140

কিছু গিট কমান্ড পিতামাতাকে সংশোধন হিসাবে গ্রহণ করে; অন্যদের (যেমন git revert), পিতামাতার নম্বর হিসাবে। কিভাবে উভয় ক্ষেত্রে বাবা-মা পেতে। আমি গ্রাফিকাল লগ কমান্ডটি ব্যবহার করতে চাই না কারণ এর জন্য প্রায়শই দ্বিতীয় পিতামাতার সন্ধানের জন্য একটি দীর্ঘ গাছের নীচে স্ক্রল করা প্রয়োজন।

উত্তর:


179

git log <hash>মার্জ কমিটের জন্য বলা সহজ তার পিতামাতার সংক্ষেপিত হ্যাশগুলি দেখায়:

 $ git log -1 395f65d
 commit 395f65d438b13fb1fded88a330dc06c3b0951046
 Merge: 9901923 d28790d
 ...

git তাদের সংখ্যা অনুসারে পিতামাতাকে আউটপুট করে: প্রথম (বামতম) হ্যাশ প্রথম পিতামাতার জন্য এবং আরও কিছু।

আপনি যা চান তা যদি কেবল হ্যাশ হয় তবে দুটি সমমানের পছন্দ হ'ল:

$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>

git rev-list পিতামাতার হ্যাশগুলিও প্রদর্শন করতে পারে, যদিও এটি প্রথমে একটি প্রতিশ্রুতি দেওয়ার জন্য হ্যাশটিকে তালিকাভুক্ত করবে:

$ git rev-list --parents -n 1 <commit>

আপনি বাবা পরীক্ষা করার চান, আপনি যেমন ক্যারেটের সাথে সরাসরি তাদের পাঠাতে পারেন <commit>^1এবং <commit>^2: যেমন

git show <commit>^1

এটি সাধারণীকরণ করে; একটি অক্টোপাস মার্জ করার জন্য আপনি n পিতামাতার হিসাবে উল্লেখ করতে পারেন <commit>^n। আপনি সমস্ত অভিভাবকদের সাথে উল্লেখ করতে পারেন <commit>^@, যদিও একক প্রতিশ্রুতি দেওয়ার প্রয়োজন হলে এটি কাজ করে না। অতিরিক্ত প্রত্যয় এন পর আবির্ভূত হতে পারে পিতা বা মাতা সিনট্যাক্স (যেমন <commit>^2^, <commit>^2^@,) যেহেতু তারা করতে পারেন না পরে ^@( <commit>^@^বৈধ নয়)। এই বাক্য গঠন সম্পর্কে আরও তথ্যের জন্য rev-parseম্যান পৃষ্ঠাটি পড়ুন।


1
আমার নিজের প্রশ্নের জবাব দেওয়া হচ্ছে: 'গিট রেভ-লিস্ট - প্যারেন্টস -n 1 <সোনামেশা>' এর ফলাফল হ'ল: <সোমাহাশ> <প্যারেন্ট 1> <পিতা 2>। অর্থাত্, পিতা-মাতার এক নম্বর রয়েছে।
মাইকমেকানা

আপনি গিট-পিতামাতারা github.com/danielribeiro/dotfiles/blob/master/bin/git-parents ব্যবহার করতে পারেন । কেবল এটি আপনার পাঠাতে এবং in গিট পিতামাতাদের <কমিট> (<কমিট> হেডের ডিফল্ট) কল করুন
ড্যানিয়েল রিবেইরো

@ জেফ্রোমি, আমি সত্যিই চাই যে "এছাড়াও নোট করুন যে সাধারণ লগ আউটপুটটি দেখায় ..." অংশটি আপনার উত্তরের শীর্ষে থাকবে। :)
অ্যাডাম মনসেন

3
git logএবং git showশুধুমাত্র একমাত্র পিতামাতা যখন খুব ভিন্ন জিনিস আউটপুট। git logআপনি যদি ধারাবাহিকতা চান তবে পছন্দ করুন ।
নোয়েল ইয়াপ

এই উত্তরটি আমার উবুন্টু মেশিনে কাজ করে না git (v2.17.1)। আউটপুটে Mergeফাইল দেখি না git log -1
এমজে

29

নীচে আমি একত্রীকরণের পিতামাতাদের দেখতে সহজতম উপায় খুঁজে পেয়েছি

git show --pretty=raw 3706454

14
git cat-file -p 3706454 একই তবে আরও খাটো :)
সাবজেন্টন

1
এই দুটিই খুব দরকারী!
টেকনাট

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