[Git] गिट संस्करण का उपयोग कर फ़ाइल का परिवर्तन इतिहास देखें



Answers

आप उपयोग कर सकते हैं

git log -p filename

गिट को प्रत्येक लॉग एंट्री के लिए पैच जेनरेट करने दें।

देख

git help log

अधिक विकल्पों के लिए - यह वास्तव में बहुत अच्छी चीजें कर सकता है :) केवल एक विशिष्ट प्रतिबद्धता के लिए भिन्नता प्राप्त करने के लिए आप कर सकते हैं

git show HEAD 

या पहचानकर्ता द्वारा कोई अन्य संशोधन। या प्रयोग करें

gitk

परिवर्तनों को दृष्टि से ब्राउज़ करने के लिए।

Question

मैं गिट में एक व्यक्तिगत फ़ाइल के परिवर्तन इतिहास को कैसे देख सकता हूं, क्या बदल गया है इसके साथ पूरा विवरण?

मुझे अब तक मिल गया है:

git log -- [filename]

जो मुझे फ़ाइल का प्रतिबद्ध इतिहास दिखाता है, लेकिन मैं प्रत्येक फ़ाइल परिवर्तन की सामग्री पर कैसे प्राप्त करूं?

मैं एमएस सोर्ससेफ से संक्रमण करने की कोशिश कर रहा हूं और यह एक साधारण right-clickshow history




मैंने इस सटीक उद्देश्य के लिए git-playback लिखा था

pip install git-playback
git playback [filename]

इसके परिणामस्वरूप कमांड लाइन (जैसे git log -p ) में परिणाम प्रदर्शित करने का लाभ होता है जबकि आपको तीर कुंजियों (जैसे gitk ) का उपयोग करके प्रत्येक प्रतिबद्धता के माध्यम से कदम उठाने देता है।




जिस जवाब को मैं ढूंढ रहा था वह इस धागे में नहीं था उन फ़ाइलों में बदलाव देखना जो मैं प्रतिबद्धता के लिए आयोजित किया था। अर्थात

git diff --cached



उत्कृष्ट गिट एक्सटेंशन के साथ , आप इतिहास में एक बिंदु पर जाते हैं जहां फ़ाइल अभी भी मौजूद है (अगर इसे हटा दिया गया है, अन्यथा केवल HEAD पर जाएं), File tree टैब पर स्विच करें, File tree पर राइट-क्लिक करें और File history

डिफ़ॉल्ट रूप से, यह नामों के माध्यम से फ़ाइल का पालन करता है, और Blame टैब किसी दिए गए संशोधन पर नाम देखने की अनुमति देता है।

इसमें कुछ मामूली गॉथस हैं, जैसे fatal: Not a valid object name दिखाना fatal: Not a valid object name हटाना संशोधन पर क्लिक करते समय View टैब में fatal: Not a valid object name , लेकिन मैं इसके साथ रह सकता हूं। :-)




उनके माध्यम से पढ़ने और थोड़ा सा खेलने के बाद अन्य उत्तरों का सारांश:

सामान्य कमांड लाइन कमांड होगा

git log --follow --all -p dir/file.c

लेकिन आप इसे देखने के अधिक मानव-पठनीय तरीके देने के लिए या तो गिटक (गुई) या टिग (टेक्स्ट-यूई) का भी उपयोग कर सकते हैं।

gitk --follow --all -p dir/file.c

tig --follow --all -p dir/file.c

डेबियन / उबंटू के तहत, इन सुंदर उपकरणों के लिए इंस्टॉल कमांड अपेक्षित है:

sudo apt-get install gitk tig

और मैं वर्तमान में उपयोग कर रहा हूँ:

alias gdf='gitk --follow --all -p'

ताकि मैं उपनिर्देशिका dir में सब कुछ का एक केंद्रित इतिहास प्राप्त करने के लिए gdf dir टाइप कर gdf dir




SourceTree उपयोगकर्ता

यदि आप अपने भंडार को देखने के लिए SourceTree का उपयोग करते हैं (यह मुफ़्त है और काफी अच्छा है) तो आप एक फ़ाइल पर राइट क्लिक कर सकते हैं और लॉग का चयन कर सकते हैं

प्रदर्शन (नीचे) गिटक से अधिक मित्रवत है और सूचीबद्ध अन्य विकल्प। दुर्भाग्यवश (इस समय) कमांड लाइन से इस दृश्य को लॉन्च करने का कोई आसान तरीका नहीं है - स्रोत ट्री का सीएलआई वर्तमान में केवल रिपोज़ खोलता है।




हाल ही में मैंने tig खोज की और इसे बहुत उपयोगी पाया। कुछ ऐसे मामले हैं जो मैं चाहता हूं कि यह ए या बी करता है लेकिन अधिकांश समय यह साफ है।

आपके मामले के लिए, tig <filename> हो सकता है कि आप जो खोज रहे हैं।

http://jonas.nitro.dk/tig/




आप यह भी कोशिश कर सकते हैं जो उन कार्यों को सूचीबद्ध करता है जिन्होंने फ़ाइल के एक विशिष्ट भाग को बदल दिया है (गिट 1.8.4 में कार्यान्वित)।

लौटा परिणाम उन विशेषताओं की सूची होगी जो इस विशेष भाग को संशोधित करते हैं। कमांड इस प्रकार है:

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

जहां upperLimit start_line_number है और lowLimit फ़ाइल का ending_line_number है।




SmartGit :

  1. मेनू में अपरिवर्तित फ़ाइलों को प्रदर्शित करने में सक्षम: अपरिवर्तित फ़ाइलों को देखें / दिखाएं
  2. फ़ाइल पर राइट क्लिक करें और 'लॉग' का चयन करें या 'Ctrl-L' दबाएं



यदि आप पाठ-आधारित रहना पसंद करते हैं, तो आप tig का उपयोग करना चाह सकते हैं।

जल्दी स्थापित करें:

  • apt-get : # apt-get install tig
  • होमब्रू (ओएस एक्स) : $ brew install tig

एक फ़ाइल पर इतिहास देखने के लिए इसका इस्तेमाल करें: tig [filename]
या विस्तृत रेपो इतिहास ब्राउज़ करें: tig

gitk समान लेकिन पाठ आधारित। टर्मिनल में रंग का समर्थन करता है!




Links