कोई इतिहास नहीं दिखाते हुए दोष


88

जब मैं एक फ़ाइल पर गिट दोष चलाता हूं (एमएसआईएसजिट का उपयोग करके) तो मुझे हमेशा निम्न प्रकार के प्रिंटआउट मिलते हैं:

00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   1) package co
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   2) {
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   3)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   4)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   5)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   6)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   7)      impor

यानी यह सभी पंक्तियों को दिखाता है न कि अभी तक प्रतिबद्ध है।

मैंने कई फाइलों पर यह कोशिश की, जिसमें कई कमिट हैं - हमेशा एक ही परिणाम। मैं भी रिश्तेदार / पूर्ण पथ का उपयोग करने की कोशिश की, लेकिन यह कोई फर्क नहीं पड़ता है।

जब मैं TortoiseGit के दोष का उपयोग करने की कोशिश करता हूं तो यह हमेशा हर पंक्ति को पहली प्रतिबद्ध पर अंतिम रूप में दिखाता है:

वैकल्पिक शब्द

मैंने भी सोचा था, जैसा कि मैंने कहा है, इन फाइलों के इतिहास में वास्तव में दसियों कमेंट हैं ..

विचार?

संपादित करें - अधिक जानकारी

  • GitHub GitHub पर ठीक काम करता है, जहां इस रेपो की मेजबानी की जाती है।
  • यह भी ठीक काम करता है अगर मैं इसे एक लिनक्स मशीन पर क्लोन करता हूं और वहां दोष करता हूं
  • ऐसा लगता है कि केवल msysgit पर यह काम नहीं करता है

मेरे लिए यह समस्या एक सिम्लिंकड पथ का उपयोग करने के परिणामस्वरूप हुई, जिस पथ को रिपॉजिटरी ने मान्यता दी थी, इसलिए उसे लगा कि फ़ाइल पूरी तरह से नई है।
क्ज़कई

नोट: git 2.0.1 (25 जून, 2014) से, git blame उन सभी "नॉट येट कमिटेड" लाइनों की रिपोर्टिंग बंद कर देनी चाहिए। देखें नीचे मेरा उत्तर
VonC

मेलिंग सूची पर: git.661346.n2.nabble.com/… लिनक्स पर भी होता है।
सिरो सेंटिल्ली 郝海东 冠状 iro 法轮功 ''

यह WSL को भी प्रभावित करता है, इसलिए मैंने टैग जोड़ा है। आशा है कि यह ठीक है।
मिकमेकाना

जवाबों:


127

git blame file.txtआपकी वर्किंग कॉपी में file.txt के वर्जन को दोष देता है। यदि फ़ाइल.txt के पास रेपो में Windows-newlines (CRLF) है और आपके पास है core.autocrlf = true, तो फ़ाइल की प्रत्येक पंक्ति को अलग माना जाएगा और git blameअभी तक प्रतिबद्ध नहीं होने की सूचना दी जाएगी ।

क्यों git blame <my_branch>(या इससे भी बेहतर git blame HEAD, जो काम करता है कोई फर्क नहीं पड़ता कि आप किस शाखा पर हैं) काम करता है, यह है कि यह काम करने वाले कॉपी संस्करण को दोष नहीं देता है, इसलिए लाइनों के लिए अभी तक प्रतिबद्ध नहीं होने की कोई संभावना नहीं है।


118
git blame -wव्हॉट्सएप को अनदेखा करता है, इसलिए आप अभी भी काम की कॉपी के खिलाफ दोष लगा सकते हैं
काइल हिरोनिमस

13
Git दोष -w एक अलग उत्तर और स्वीकृत एक होना चाहिए;)। टिप्पणी के बिना स्वीकृत उत्तर मेरे लिए बेकार था।
गिलौम पेरोट

55

समाधान मिला - बहुत अजीब।

अगर मैं इसे चलाता हूं:

git blame file.txt

जैसा कि ऊपर पोस्ट किया गया है, इतिहास टूट गया है।

अगर मैं इसके बजाय ऐसा करता हूं:

git blame my_branch file.txt

यह काम करता हैं!

यह बहुत ही अजीब है, क्योंकि AFAICS के उपयोग के लिए शाखा नाम की आवश्यकता नहीं होती है:

$ git blame
usage: git blame [options] [rev-opts] [rev] [--] file

7
यह मेरे लिए काम करता है, इसे पोस्ट करने के लिए धन्यवाद। आपको इसे IMO के उत्तर के रूप में चिह्नित करना चाहिए।
वेस

यह मेरे लिए msysgit में काम करता है लेकिन फ़ाइल नाम केस-संवेदी है। तो मैं लिख सकता हूं git blame mybranch cmakelists.txtऔर यह विफल हो जाएगा; लेकिन अगर मैं लिखता हूं तो git blame mybranch CMakeLists.txtयह काम करेगा।
लूप

मैं सहमत हूं, वेस; दोष तब तक कोई इतिहास नहीं दिखा रहा था जब तक कि मैंने शाखा को निर्दिष्ट नहीं किया था, और यह प्रलेखन के साथ असंगत है।
जोसेफदपुरसेल

OMG, दोष इतना टूट गया है।
सिरो सेंटिल्ली 郝海东 冠状 iro i 法轮功 '

8

जीआईटी 2.0.1 (25 जून, 2014) से शुरू होकर, गिट दोष को उन सभी "नॉट येट कमिटेड" लाइनों की रिपोर्ट करना बंद कर देना चाहिए।

ब्रायन एम द्वारा प्रतिबद्ध 4d4813a (26 अप्रैल 2014) देखें । कार्लसन ( bk2204)
(द्वारा विलय Junio सी Hamano - gitster- में प्रतिबद्ध e934c67 , 06 जून 2014)

blame: सही ढंग से फ़ाइलों की परवाह किए बिना संभाल autocrlf

यदि एक फाइल CRLFमें एक रिपॉजिटरी के साथ लाइन एंडिंग होती है core.autocrlf=input, तो हमेशा लाइनों को " Not Committed Yet" के रूप में चिह्नित किया जाता है , भले ही वे अनमॉडिफाइड हों।
फर्जी कमिट बनाते समय लाइन एंडिंग को बदलने का प्रयास न करें ताकि autocrlfसेटिंग की परवाह किए बिना सही ढंग से काम करें ।


8
मुझे अभी भी git v2.1.3 में समस्या है
DBedrenko

मुझे git संस्करण 2.16.1.windows.1 के साथ समस्या है
Radon8472

@ Radon8472 क्या आप अपने git config -lआउटपुट (और इस उत्तर पर वापस लिंक) के साथ समस्या को दर्शाते हुए एक नया प्रश्न जोड़ सकते हैं : जो मुझे और अन्य लोगों को प्रयास करने और देखने की अनुमति देगा कि क्या समस्या बनी रहती है।
VonC

1

एक अन्य संभावना: केस-संवेदी फ़ाइलनाम टाइपो

मुझे git blame file.txt के साथ भी यही समस्या थी, तब मुझे एहसास हुआ कि मैंने file.txt के साथ केस-सेंसिटिव फ़ाइल नाम टाइपो बनाया है।

इसे File.txt में बदल दिया (उदाहरण के लिए), और मुझे my_branch निर्दिष्ट करने के लिए अपेक्षित परिणाम w / o प्राप्त हुए: git blame file.txt

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