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




git-log (14)

SourceTree उपयोगकर्ता

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

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

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

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

git log -- [filename]

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

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


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

git log -p filename

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

देख

git help log

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

git show HEAD 

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

gitk

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


इस उपनाम को अपने .gitconfig में जोड़ें:

[alias]
    lg = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\n--abbrev-commit --date=relative

और इस तरह के कमांड का उपयोग करें:

> git lg
> git lg -- filename

आउटपुट लगभग गिट आउटपुट के समान ही दिखाई देगा। का आनंद लें।


इसके लिए मैं उपयोग करूंगा:

gitk [filename]

या पिछले नाम फ़ाइल नाम का पालन करने के लिए

gitk --follow [filename]

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

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

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


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

git diff --cached

यदि आप TortoiseGit का उपयोग करते हैं तो आपको फ़ाइल पर राइट क्लिक करने में सक्षम होना चाहिए और TortoiseGit --> Show Log । पॉप अप करने वाली विंडो में, सुनिश्चित करें कि:

  • ' Show Whole Project ' विकल्प की जांच नहीं की गई है।

  • ' All Branches ' विकल्प की जांच की गई है।


यदि आप किसी अन्य फ़ाइल पर शामिल फ़ाइल के पूरे इतिहास को देखना चाहते हैं, तो उपयोग करें:

gitk --all <filename>

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

शीघ्र इंस्टॉल करना:

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

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

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


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


या:

gitx -- <path/to/filename>

यदि आप gitx का उपयोग कर रहे हैं


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

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

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


git diff -U <filename> आपको एक एकीकृत diff देता है।

यह लाल और हरे रंग पर रंगीन होना चाहिए। यदि यह नहीं है, तो चलाएं: git config color.ui auto पहले।


git log --follow -p -- file

यह फ़ाइल का पूरा इतिहास दिखाएगा (इतिहास के नाम से परे इतिहास और प्रत्येक परिवर्तन के लिए diffs के साथ)।

दूसरे शब्दों में, यदि bar नाम की गई फ़ाइल को एक बार foo नाम दिया गया था, तो git log -p bar ( --follow विकल्प के बिना) केवल उस फ़ाइल तक का इतिहास दिखाएगा जहां इसका नाम बदल दिया गया था - यह नहीं दिखाएगा फ़ाइल का इतिहास जब इसे foo रूप में जाना जाता था। git log --follow -p bar का उपयोग करना - git log --follow -p bar फ़ाइल के पूरे इतिहास को दिखाएगा, जिसमें फ़ाइल में किए गए किसी भी बदलाव सहित इसे foo रूप में जाना जाता था। -p विकल्प सुनिश्चित करता है कि प्रत्येक परिवर्तन के लिए diffs शामिल हैं।





git-log