2012-03-07 10 views
19

चूंकि यह नहीं रह गया है भंडार में, मैं नहीं कर सकताआप कैसे देखते हैं कि किस प्रतिबद्ध ने रेपो से एक फ़ाइल हटा दी है?

git log <filename> 

मैं

git log --diff-filter='D|R' <directory_that_contained_it> 

चला सकते हैं लेकिन यह है कि बहुत अधिक जानकारी है और यह grepping फ़ाइल मैं सूची प्रतीत नहीं होता है मैं देख रहा हूँ

उत्तर

19
git log -1 --stat -- <path/to/file> 

मैं वहाँ में --stat डाल पर^ताकि आप सत्यापित कर सकते हैं कि फ़ाइल हटाया गया था।

+0

दिलचस्प। यह पहली बात थी जिसकी मैंने कोशिश की थी (बिना शर्त) और यह काम नहीं किया। मैंने अब एक और रेपो के साथ कोशिश की है और यह वहां काम करता है। हालांकि, यह अभी भी मूल रेपो के लिए नहीं है। यह कुछ भी वापस नहीं देता है जैसे फ़ाइल कभी अस्तित्व में नहीं थी। अगर मैं उस प्रतिबद्धता पर वापस जाता हूं जिसने फ़ाइल को हटा दिया है, लेकिन यह मौजूदा हेड से नहीं है। –

+0

यह कुछ भी नहीं देता है। – MKumar

+0

@BalintErdi मुझे यकीन नहीं है कि यह उन परिस्थितियों में काम करेगा जहां फ़ाइल को हटाए गए हैश आईडी ने अंतिम हैश आईडी को फ़ाइल को छूने के लिए पहले किया था, जैसा संभव है कि दो शाखाओं के बीच विलय कर रहा हो। - तो, ​​यह समझा सकता है कि यह आपके लिए लगातार क्यों काम नहीं करता है। –

3
git log -- <filename> 

आपको उस पथ में परिवर्तन दिखाएगा, भले ही वह फ़ाइल मौजूद न हो।

आप, पहला परिणाम लौटे तक सीमित करने, जो एक है, जहां यह गायब हो गया

git rev-list -n 1 HEAD -- <filename> 

कि संशोधन जब यह गायब हो जाता है है हो जाएगा rev-list -n 1 उपयोग कर सकते हैं ताकि आप माता-पिता पा सकते हैं यदि आप चाहते हैं साथ इसे फिर से स्थापित है कि संशोधन संख्या

संबंधित मुद्दे