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


85

Git संस्करण का उपयोग करके किसी फ़ाइल का परिवर्तन इतिहास देखें Git में फ़ाइल के इतिहास को देखने के अन्य तरीकों के बारे में बात करता है।

यह Emacs Magit में किया जा सकता है?


ऐसा लगता है कि यह उत्तर इस बात का हिस्सा है कि आप emacs.stackexchange.com/a/7683/16879
ibizaman

जवाबों:


113

मैगिट 2.1 के बाद से: magit-log-buffer-file(नीचे टिप्पणी के अनुसार)

मैजिट 2.1 से पहले: magit-file-logआप जो खोज रहे हैं। यह आपको मानक मैगिट लॉग दृश्य में वर्तमान बफर में फ़ाइल के लिए सभी कमिट दिखाएगा।


9
मैगिट 2.1 के बाद से, magit-file-logइसका नाम बदलकरmagit-log-buffer-file
एंटोन आई।

9
दुर्भाग्यवश, magit-log-buffer-fileप्रत्येक कमिट का प्रदर्शन केवल उस फाइल तक ही सीमित नहीं है।
रॉबिन ग्रीन

4
@CatalinHritcu यह उस फ़ाइल को प्रभावित करने वाले सभी कमिट्स को प्रदर्शित करने में अच्छा काम करता है, लेकिन यह प्रत्येक कमिट को केवल उस फ़ाइल के प्रदर्शन को प्रतिबंधित नहीं करता है।
विल्किस्टाइल

5
सबसे सुविधाजनक तरीका है मैं अब तक मिल गया है को लागू करने की है magit-log-buffer-fileऔर फिर से चलाने के magit-ediff-dwimलिए अपनी पसंद के लिए प्रतिबद्ध पर (Spacemacs में "ई" शॉर्टकट के लिए बाध्य)। यह हाइलाइट किए गए परिवर्तनों के साथ दो पैन के साथ एक विंडो दिखाएगा।
जुराज मार्टिंका

1
अस्पष्ट क्या @ रोबिन-हरे और @wilkystyle का वर्णन कर रहे हैं, लेकिन शायद कीस्ट्रोक्स l, -uऔर lबाद में मदद मिलेगीmagit-log-buffer-file
dickmao

33

अपना magit-statusबफ़र खोलें , टाइप करके M-x magit-status(मेरे पास यह बाध्य है C-. C-gक्योंकि यह हर समय उपयोग किया जाता है। इन दिनों, मैं स्पेसमास का उपयोग करता हूं इसलिए <SPC> g s)

  1. lलॉग देखने का विकल्प पाने के लिए टाइप करें
  2. टाइप करें --"फ़ाइलों के लिए सीमा" विकल्प सेट करने के लिए (हुआ करता था =f)
  3. वह फ़ाइल पथ दर्ज करें जिसके लिए आप इतिहास देखना चाहते हैं
  4. lवर्तमान शाखा के लॉग को देखने के लिए टाइप करें

यदि आप Spacemacs का उपयोग कर रहे हैं, तो आप वर्तमान में उपयोग की गई फ़ाइल का इतिहास प्राप्त कर सकते हैं <SPC> g f h


1
मुझे लगता है कि चरण 2 अब है --( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux)
लियाम

1
अच्छा है, कुछ बिंदुओं पर हटा दी गई फ़ाइलों के साथ भी काम करता है।
गुंटर जोचबॉयर


3

मुझे कोई रास्ता नहीं पता है। मैं बस M-x vc-print-logउसी करतब को पूरा करता हुआ उपयोग करता हूं । यह एक मैजिट-इंटीग्रेटेड तरीका नहीं है, हालाँकि।


2

यदि मैगिट ( उपयोगकर्ता मैनुअल ) में वह सुविधा नहीं है, तो आप अन्य Emacs मोड पर एक नज़र डाल सकते हैं , और आपको अपना git-log-fileफ़ंक्शन जोड़ सकते हैं :

(defun git-log-file ()
  "Display a log of changes to the marked file(s)."
  (interactive)
  (let* ((files (git-marked-files))
         (buffer (apply #'git-run-command-buffer "*git-log*" "git-rev-list" \
"--pretty" "HEAD" "--" (git-get-filenames files))))  (with-current-buffer buffer
      ; (git-log-mode)  FIXME: implement log mode
      (goto-char (point-min))
      (setq buffer-read-only t))
    (display-buffer buffer)))

या सिर्फ उपयोगC-x v l
phils

: मैं निम्न संदेश हो रहा हैSymbol’s function definition is void: git-marked-files
alper

1
@alp 7 साल बाद, यह मुद्दा बेहतर होगा अपने सवाल में, ओएस, ग्रहण और जादू प्लगइन के सटीक संस्करण के साथ।
वॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.