केवल विशिष्ट शाखा के लिए परिवर्तन देखने के लिए मैं git लॉग कैसे चलाऊँ?


395

मेरे पास रिमोट / मास्टर शाखा पर नज़र रखने वाली एक स्थानीय शाखा है। रनिंग के बाद git-pullऔर git-log, लॉग सभी रिमोट ट्रैकिंग शाखा के साथ-साथ वर्तमान शाखा में दिखाएगा। हालाँकि, क्योंकि दूरस्थ शाखा में बहुत सारे बदलाव किए गए थे, इसलिए मुझे वर्तमान स्थानीय शाखा में किए गए कमिट को देखने की जरूरत है।

एक विशिष्ट शाखा के लिए केवल दिखाने के लिए उपयोग करने के लिए Git कमांड क्या होगा?

टिप्पणियाँ:

कॉन्फ़िगरेशन जानकारी:

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

जवाबों:


526

यह मानते हुए कि आपकी शाखा को बंद कर दिया गया था master, तब शाखा में (यानी, आपके पास शाखा की जाँच हो चुकी है):

git cherry -v master

या

git log master..

यदि आप शाखा में नहीं हैं, तो आप शाखा का नाम "git log" कमांड में जोड़ सकते हैं, जैसे:

git log master..branchname

यदि आपकी शाखा बंद हो गई है origin/master, तो origin/masterइसके बजाय कहें master


100
उत्तम! git log --no-merges master..ठीक वैसा ही था जैसा मुझे चाहिए था।
हाईवे ऑफ लाइफ

3
@HighwayofLife: --no-mergesऐसा प्रतीत हो सकता है कि यह केवल एक विशिष्ट शाखा से कमिट दिखा रहा है, लेकिन यह वास्तव में केवल ऐसे कमिट दिखा रहा है जिसके परिणामस्वरूप मर्ज नहीं हुआ
rynmrtn

5
ऐसा करने के तरीके के बारे में कैसे मुझे माता-पिता को टाइप करने / जानने की आवश्यकता नहीं है? :)
ELLIOTTCABLE

1
दर-परिवर्तन की भावना प्राप्त करने के लिए, मैंने निम्नलिखित झुकाव का उपयोग किया :) जो लेखक के नाम के साथ एक-लाइन लॉग प्रारूप का उत्पादन करता है, जिसके बाद प्रतिबद्ध व्यक्ति की रिश्तेदार आयु होती है:git log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
नूह सूसमैन

2
नहीं पढ़ना चाहिए? git लॉग मास्टर .. <अपनी शाखा> - ऑनलाइन- no-merges
एलेक्स

104

उपयोग:

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

यह केवल लक्ष्य शाखा के लिए है (निश्चित रूप से - आरेख, --abbrev-प्रतिबद्ध --dororate अधिक चमकाने हैं)।

मुख्य विकल्प है - फ़र्स्ट-पैरेंट: "मर्ज कमिट देखने के बाद केवल पहले माता-पिता का पालन करें" ( 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। @EdRandall के जवाब में, यह ब्रांच + के उन कमिट्स को दिखाएगा, जहां से इसे ब्रांच किया गया था। उदाहरण के लिए:
राचेल

2
ओह, मैंने जल्द ही प्रस्तुत किया, यहाँ उदाहरण है: आपके पास मास्टर पर ए और बी हैं। आप new_featureगुरु से शाखा । आप इसमें C और D जोड़ते हैं। फिर आप ई और एफ को मास्टर में जोड़ें। आप तब मास्टर को मर्ज करते हैं 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^!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.