फ़ाइल इतिहास को Git में कैसे देखें?


133

तोड़फोड़ के साथ मैं TortoiseSVN का उपयोग फाइल के इतिहास / लॉग को देखने के लिए कर सकता था।

मैं इसे Git के साथ कैसे कर सकता हूं?

बस एक विशेष फ़ाइल के लिए इतिहास रिकॉर्ड की तलाश है, और फिर विभिन्न संस्करणों की तुलना करने की क्षमता है।

जवाबों:


156

git logप्रतिबद्ध इतिहास देखने के लिए उपयोग करें । प्रत्येक कमिट में एक संबद्ध संशोधन निर्दिष्ट होता है जो हैश की (जैसे 14b8d0982044b0c49f7a855e396206ee65c0e787और b410ad4619d296f9d37f0db3d0ff5b9066838b39) होता है। दो अलग-अलग कमिट्स के बीच के अंतर को देखने के लिए, git diffदोनों कमिट्स के रिवीजन स्पेसिफिकर्स के पहले कुछ कैरेक्टर्स का उपयोग करें , जैसे:

# diff between commits 14b8... and b410...
git diff 14b8..b410
# only include diff of specified files
git diff 14b8..b410 path/to/file/a path/to/file/b

यदि आप उन सभी अंतरों पर एक अवलोकन प्राप्त करना चाहते हैं जो प्रतिबद्ध से, उपयोग git logया git whatchangedपैच विकल्प के साथ हुए हैं:

# include patch displays in the commit history
git log -p
git whatchanged -p
# only get history of those commits that touch specified paths
git log path/a path/b
git whatchanged path/c path/d

7
-P टिप के लिए धन्यवाद, यह खोजने के लिए सुपर उपयोगी है कि किन संशोधनों में थोड़ा सा कोड शामिल है।
क्रिस्टोफर पिक्सले

100

लगता है जैसे आप चाहते हैं git diff और / या git लॉग । इसके अलावा gitk की जाँच करें

gitk path/to/file
git diff path/to/file
git log path/to/file

3
यहाँ gitk के लिए एक और नोड है, जो एक git रेपो में किसी एकल फ़ाइल के सभी स्नैपशॉट ब्राउज़ करने का एक शानदार तरीका प्रदान करता है।
रे ब्राउन

1
डिफ़ॉल्ट रूप से gitk संदर्भ की 10 से अधिक पंक्तियों को दिखाता है, लेकिन क्या होगा यदि आप पूरी फ़ाइल का स्नैपशॉट देखना चाहते हैं? बस "संदर्भ की लाइनें" एक बड़े मूल्य (जैसे 100000) पर सेट करें। फिर आप कमिट्स के बीच आगे और पीछे फ्लिप कर सकते हैं और पूरी फाइल को विभिन्न बिंदुओं पर समय पर देख सकते हैं। (आप फ़ाइल के भीतर भी खोज कर सकते हैं।)
एंटी जूल

35

मुझे gitk name_of_file का उपयोग करना पसंद है

यह उन बदलावों की एक अच्छी सूची दिखाता है, जो सभी फाइलों में हुए बदलावों को दिखाने के बजाय, प्रत्येक फाइल में हुए हैं। जो कुछ घटित हुआ उसे ट्रैक करना आसान बनाता है।


30

तुम भी एक अच्छा, ncurses- आधारित गिट रिपॉजिटरी ब्राउज़र के लिए tig का उपयोग कर सकते हैं । किसी फ़ाइल का इतिहास देखने के लिए:

tig path/to/file

29

मेरा पसंदीदा है git log -p <filename>, जो आपको दिए गए फ़ाइल के सभी कमिट के साथ-साथ प्रत्येक कमिट के लिए अलग-अलग इतिहास देगा।


11

कई Git इतिहास ब्राउज़र, git log(और 'git log --graph'), gitk (Tcl / Tk, Git का हिस्सा), QGit (Qt में), tig (पाठ मोड इंटरफ़ेस git, ccurses का उपयोग करके), Giggle (सहित) GTK +), TortoiseGit और git-cheetah सपोर्ट पाथ लिमिटिंग (जैसे gitk path/to/file)।


@ RobertVuković मुझे पता है कि यह एक पुराना सवाल है ... लेकिन नीचे मेरा जवाब देखें!
brianc

4

बेशक, यदि आप संभव के रूप में कछुआ वीवीएन के करीब चाहते हैं, तो आप बस कछुआगेट का उपयोग कर सकते हैं ।


सिवाय इसके कि TortoiseSvn शेल एक्सटेंशन में एकल फ़ाइल का इतिहास दिखाने के लिए एक कमांड है, जबकि TortoiseGit नहीं है।
न्यूट्रिनो

3

git log --all -- path/to/file कार्य करना चाहिए


मेरे जवाब में कोई लिंक नहीं है @ineersa
Edson Medina

1
यह शीर्ष उत्तर होना चाहिए। मुझे भद्दे गुई उपकरण का उपयोग करना पसंद नहीं है
ग्रोबी


2

TortoiseGit एक फ़ाइल का इतिहास देखने के लिए एक कमांड लाइन टूल भी प्रदान करता है । PowerShell का उपयोग करना:

C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.