Xem lịch sử của tệp trong Magit?


Câu trả lời:


113

Kể từ magit 2.1: magit-log-buffer-file(theo bình luận bên dưới)

Before magit 2.1: magit-file-loglà thứ bạn đang tìm kiếm. Nó sẽ hiển thị cho bạn tất cả các cam kết cho tệp trong bộ đệm hiện tại trong chế độ xem nhật ký magit tiêu chuẩn.


9
Kể từ magit 2.1, magit-file-logđược đổi tên thànhmagit-log-buffer-file
Anton I. Sipos

9
Thật không may, magit-log-buffer-filekhông hạn chế việc hiển thị từng cam kết chỉ với tệp đó.
Robin Green

4
@CatalinHritcu Nó hoạt động tốt khi hiển thị tất cả các cam kết ảnh hưởng đến tệp đó, nhưng nó không hạn chế việc hiển thị mỗi cam kết chỉ với tệp đó.
wilkystyle

5
Cách thuận tiện nhất mà tôi đã tìm thấy cho đến nay là gọi magit-log-buffer-filevà sau đó chạy magit-ediff-dwim(liên kết với phím tắt "e" trong Spacemacs) theo cam kết mà bạn chọn. Thao tác này sẽ hiển thị một cửa sổ có hai ngăn với các thay đổi được đánh dấu.
Juraj Martinka

1
Không rõ ràng những gì @ robin-màu xanh lá cây và @wilkystyle được mô tả, nhưng có lẽ là tổ hợp phím l, -ulsẽ giúp saumagit-log-buffer-file
dickmao

33

Mở magit-statusbộ đệm của bạn bằng cách gõ M-x magit-status(Tôi đã từng bị ràng buộc C-. C-gbởi vì nó được sử dụng mọi lúc. Ngày nay, tôi sử dụng Spacemacs nên nó <SPC> g s)

  1. Nhập lđể nhận tùy chọn xem nhật ký
  2. Nhập --để đặt tùy chọn "Giới hạn đối với tệp" (đã từng như vậy =f)
  3. Nhập đường dẫn tệp bạn muốn xem lịch sử
  4. lđể xem nhật ký của chi nhánh hiện tại

Nếu đang sử dụng Spacemacs, bạn có thể lấy lịch sử của tệp hiện đang truy cập bằng cách sử dụng <SPC> g f h


1
Tôi nghĩ bước 2 bây giờ là --( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux)
Liam

1
Tốt, cũng hoạt động với các tệp đã bị xóa tại một số điểm.
Günter Zöchbauer

11

Trong *magit: <project>*bộ đệm của bạn, sử dụng lđể chuyển sang chế độ ghi nhật ký, sau đó nhấn fđể được nhắc nhập tên tệp.


3

Tôi không biết một cách. Tôi chỉ đơn giản sử dụng M-x vc-print-logmà dường như đạt được kỳ tích tương tự. Tuy nhiên, nó không phải là một cách tích hợp magit.


2

Nếu magit ( hướng dẫn sử dụng ) không có tính năng đó, thì bạn có thể xem chế độ Emacs khác và thêm git-log-filechức năng của riêng bạn :

(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)))

Hoặc chỉ sử dụngC-x v l
phils

Tôi đang gặp thông báo sau:Symbol’s function definition is void: git-marked-files
alper

1
@alp 7 năm sau, vấn đề đó sẽ được trình bày tốt hơn trong câu hỏi của chính nó, với phiên bản chính xác của hệ điều hành, eclipse và plugin ma thuật.
VonC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.