গিট: মার্জ করা শাখা থেকে নয় তবে এই শাখায় কমিটগুলি কীভাবে তালিকাভুক্ত করা যায়


90

মনে করুন আপনার গিট কমিটের ইতিহাসটি এরকম দেখাচ্ছে:

A---B---C---D---E---F master
     \         /
      X---Y---Z topic

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


4
সুতরাং, গিট কীভাবে জানবে যে মার্জ করা শাখার কোনটি Dএবং Zঅংশ ছিল?
রোমাইন

4
মাস্টার থেকে মার্জ হয়ে গেলে, পূর্ববর্তী মাস্টার কমিটগুলি হ'ল মার্জ হওয়ার প্রথম পিতা-মাতা। git logকেবল যার সাথে চুক্তি করেছে তাদের প্রদর্শন করতে দেয় --first-parent, যাতে আপনি সঠিক জিনিসগুলি পান
চার্লসবি

উত্তর:


133

git logবিকল্প আছে --first-parent, যাতে আপনি topicইতিহাস পাবেন না ।

যখন থেকে মার্জ করা হয়েছে master, masterকরে একত্রীকরণ প্রথম বাবা আছে। গিট লগ কেবলমাত্র প্রথম-পিতামাতার সাথে এই প্রতিশ্রুতিগুলি প্রদর্শন করতে দেয়, যাতে আপনি সঠিক জিনিসটি পান।


25
--first-parentএটি +1 করে :) --no-mergesআপনার সাথে একত্রিত হয়ে মার্জ
কমিটগুলি


22

টিএলডিআর : git log origin/master --no-mergesআপনাকে মাস্টারের একটি লগ দেবে এবং যে কোনও মার্জড কমিট বাদ দেবে ( এক্ষেত্রে এক্স, ওয়াই, জেড)

আসল পয়েন্টস

এটির জন্য আরও একটি সাধারণ উপায় রয়েছে --first-parentযা নির্ভর করে না যা নির্দিষ্ট পরিস্থিতিতে সহায়ক হবে .. শাখা বহির্ভূত ফিল্টারগুলি ব্যবহার করে

git log origin/topic ^origin/master এই আপনি একটি লগ দেব origin/topicসব origin/masterমুছে এর হলেও ক্ষতি নেই।

আপনি যুক্ত করতে পারেন --no-mergesযা মার্জ কমিটগুলি লুকিয়ে রাখতে পারে যা আপনি চাইবেন বা নাও চান।

এর shortlogপরিবর্তে আর একটি সহজ টিপ হ'ল এর পরিবর্তে logআপনাকে এমন একটি সংক্ষিপ্তসার সংক্ষিপ্তসার দেবে যা রিলিজ নোটগুলির জন্য সহজ হতে পারে, বা কোনও শাখায় কী যোগাযোগ করতে পারে।

আপডেট এটি
পুনরায় পড়ার পরে, আপনি আসলে আমার পোস্টের বিপরীতটি চাইবেন; তবে এটি মাস্টার এবং ফু ( git log origin/master ^origin/foo) এর সমস্ত কিছু বাদ দিয়ে শেষ হবে । তবে আপনি যা চেয়েছিলেন তা পেতেও (মার্জগুলির অংশ যে সমস্ত কমিটগুলি লুকান) তাও পেতে পারেনgit log origin/master --no-merges


0

চার্লসের উত্তর আমার পক্ষে কাজ করে।

git log has option --first-parent --no-merges, so you won't get topic history.

তবে আপনি যদি আপনার গিট ক্রিয়াকলাপগুলির জন্য যেমন গিট এক্সটেনশন, সোর্স ট্রি, কচ্ছপ গিটের জন্য কোনও গ্রাফিক ব্যবহারকারী ইন্টারফেস ব্যবহার করছেন,

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

আমি দুটি সরঞ্জামের উদাহরণ সংযুক্ত করেছি, এটি অন্যান্য সরঞ্জামগুলির জন্যও একই রকম হবে: [আমি ব্যবহারকারীর নামটি ঝাপিয়েছি, গিট রেপো নামটি এটি একটি ব্যক্তিগত সংগ্রহস্থল, তবে এখনও আপনি কীভাবে সরঞ্জাম থেকে প্রথম পিতামাতাকে ব্যবহার করবেন সে সম্পর্কে ধারণা পেতে পারেন ]

  1. গিট এক্সটেনশন
    • গিট এক্সটেনশন খুলুন -> আপনি কমিটগুলি দেখতে চান এমন বৈশিষ্ট্য শাখাটি চেকআউট করুন, চিত্রটিতে প্রদর্শিত হিসাবে প্রথমে কমিটগুলি নির্বাচন করার বিকল্প রয়েছে:

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

  1. কচ্ছপ গিট
    • সংগ্রহস্থল ফোল্ডারটি খুলুন -> কচ্ছপ গিট থেকে শো লগগুলিতে ক্লিক করুন -> শাখাটি চেকআউট করুন এবং চিত্রটিতে প্রদর্শিত হিসাবে প্রথমে কমিটগুলি নির্বাচন করুন

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


-3

এটি কি কাজ করে না?

git log master
git log --stat master

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