শুধুমাত্র একটি নির্দিষ্ট শাখার পরিবর্তনগুলি দেখতে আমি কীভাবে গিট লগ চালাতে পারি?


395

আমার একটি স্থানীয় শাখা রিমোট / মাস্টার শাখা ট্র্যাক করছে। চলার পরে git-pullএবং git-log, লগটি দূরবর্তী ট্র্যাকিং শাখার পাশাপাশি বর্তমান শাখায় সমস্ত প্রতিশ্রুতি প্রদর্শন করবে। তবে, যেহেতু দূরবর্তী শাখায় এতগুলি পরিবর্তন হয়েছিল, আমার বর্তমান স্থানীয় শাখায় করা কমিটগুলি দেখতে হবে।

কোনও নির্দিষ্ট শাখার জন্য কেবল কমিট দেখাতে গিট কমান্ডটি কী হবে?

মন্তব্য:

কনফিগারেশন তথ্য:

[branch "my-branch"]
  remote = origin
  merge = refs/heads/master

উত্তর:


526

ধরে নিই যে আপনার শাখাটি তৈরি করা হয়েছিল master, তখন শাখায় থাকাকালীন ( অর্থাত্ , আপনি শাখাটি পরীক্ষা করে দেখেছেন):

git cherry -v master

অথবা

git log master..

আপনি যদি শাখায় না থাকেন তবে আপনি শাখাটির নামটি "গিট লগ" কমান্ডে যুক্ত করতে পারেন, এটির মতো:

git log master..branchname

যদি আপনার শাখাটি বন্ধ করে দেওয়া হয় origin/masterতবে তার origin/masterপরিবর্তে বলুন master


100
পারফেক্ট! git log --no-merges master..আমার যা দরকার ছিল ঠিক তাই ছিল
হাইওয়ে

3
@ হাইওয়েফ্লাইফ: --no-mergesপ্রদর্শিত হতে পারে যে এটি কেবলমাত্র একটি নির্দিষ্ট শাখা থেকে কমিট দেখানো হচ্ছে, তবে এটি কেবলমাত্র এমন
অঙ্গীকার দেখায়

5
এটি করার একটি উপায় কীভাবে আমাকে পিতামাতা-শাখাটি টাইপ / জানতে প্রয়োজন হয় না? :)
এলিওটিটিসিবিলে

1
রেট-অফ-চেঞ্জের ধারণাটি পেতে, আমি নিম্নলিখিত পদক্ষেপটি ব্যবহার করেছি :) যা লেখকটির নাম সহ প্রথম দেখানো হয়েছে এবং এরপরে git log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
কমিটের

2
পড়া উচিত নয়? গিট লগ মাস্টার .. <আপনার শাখা> --অনলাইন
অ্যালেক্স নোলাস্কো

104

ব্যবহার করুন:

git log --graph --abbrev-commit --decorate  --first-parent <branch_name>

এটি কেবল লক্ষ্য শাখার জন্য (অবশ্যই - অনুচ্ছেদ, --abbrav-অঙ্গীকার - ডেকোর্ট আরও পোলিশ করছে)।

মূল বিকল্পটি হ'ল - প্রথম-পিতা-মাতা: "একীভূত প্রতিশ্রুতি দেখার পরে প্রথম পিতামাতার প্রতিশ্রুতি অনুসরণ করুন" ( https://git-scm.com/docs/git-log )

এটি প্রতিশ্রুতিবদ্ধ কাঁটাচামচ প্রদর্শিত হতে বাধা দেয়।


25
--first-parent <branch_name>বিকল্প হয়। কাজ!
পরশ্রিশ

3
যেখানে শাখা-নাম কী, সেই শাখাটি যার ইতিহাস আমি কেবল দেখতে চাই? একটি শাখায় শুধুমাত্র 3 টি পরিবর্তন রয়েছে, এটি আমাকে কয়েকশ দেখায়।
এড র্যান্ডাল

1
--first-parent <branch_name>আমার জন্য কাজ! আমি একটি উপনাম দিয়ে শেষ git log --first-parent $current_branch_name --no-merges। @ এডরানডাল এর প্রতিক্রিয়া হিসাবে, এটি শাখাটিতে + যেখানে শাখা করা হয়েছিল তাদের শাখাগুলির প্রতিশ্রুতি প্রদর্শন করবে। উদাহরণস্বরূপ:
রাচেল

2
ওফস, আমি শীঘ্রই জমা দিয়েছি, এখানে উদাহরণটি রয়েছে: আপনি মাস্টার উপর A এবং B প্রতিশ্রুতিবদ্ধ। আপনি new_featureমাস্টার থেকে শাখা । আপনি এটিতে সি এবং ডি যোগ করেন। তারপরে আপনি মাস্টারে E এবং F যুক্ত করুন। তারপরে আপনি মাস্টারকে মার্জ করুন new_feature। এটি ব্যবহার git logকরে new_featureআপনি "মার্জ মাস্টার", এফ, ই, ডি, সি, এ, বি ব্যবহার করে git log --first-parent new_feature --no-mergesদেখতে পাবেন, ডি, সি, এ, বি
রাচেল

24

আপনি যদি কেবলমাত্র একটি বিশেষ শাখায় আপনার দ্বারা করা কমিটগুলি চান তবে নীচের কমান্ডটি ব্যবহার করুন।

git log branch_name --author='Dyaniyal'

13

আমার যে সমস্যাটি হয়েছিল, যা আমি মনে করি এটি এর সাথে সাদৃশ্যপূর্ণ তা হ'ল ইতিহাস কার্যকর হওয়ার জন্য মাস্টার আমার শাখা দফার চেয়ে অনেক এগিয়ে ছিলেন। (শাখা পয়েন্টে নেভিগেট করতে খুব বেশি সময় লাগবে))

কিছু পরীক্ষা এবং ত্রুটির পরে, এটি আমাকে যা চেয়েছিল তা মোটামুটি দিয়েছে:

git log --graph --decorate --oneline --all ^master^!

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