Magit의 다른 커밋에서 파일을 체크 아웃하는 방법


16

나는 파일이있어 foo.txt분기를 A, 나는 체크 아웃 할 foo.txt지점에서 B인덱스로. 커맨드 라인에서 다음과 같이하십시오.

$ git checkout B -- foo.txt

로그로 이동하여 관심있는 커밋 (예 :)을 l o B찾고 foo.txt, 명령을 찾고 실행 하여이 작업을 수행 할 수 있기를 원 하지만 수행 방법을 알 수는 없습니다.


이제 기능 요청 github.com/magit/magit/issues/2184 입니다. 그것을보고 해 주셔서 감사합니다, 관리자
Emoses

답변:


21

magit 2.11.0부터는 재설정 디스패처에서 직접 가능 X f합니다 (버전 및 파일을 지정할 수 있음).

여기에 이미지 설명을 입력하십시오

이것은 magit-file-checkout버전 사양과 파일 이름 (@Emoses의 기능 요청 및 @Kyle Meyer의 구현 덕분)을 허용하는 magit 내에서 프로그래밍 방식으로 수행 할 수 있습니다 . 이전에는 함수의 이름 magit-checkout-file이 v2.3.0-v2.9.0부터 지정되었습니다 .


4
magit-checkout-file더 이상 사용되지 않습니다. magit-file-checkout대신 사용하십시오 .
Sagar Jha

3

나는 이것을하는 기본 방법을 모른다.

분기 A에 있다고 가정하면 분기 B ( d r ..B) 를 다른 지점으로 이동 한 다음 원하는 파일로 지점을 이동하는 것이 좋습니다.를 누르면 a해당 변경 사항이 작업 트리에 적용됩니다 (색인 대신).

구성에서 수정본에서 파일을 재설정하거나 체크 아웃하라는 명령이 있지만 현재 상태에서는 Magit Revision에서 훌륭한 수정본 기본값을 제공하지 않기 때문에 요청한 내용과 정확히 일치하지 않습니다. 방법.

(defun km/magit-reset-file (rev file &optional checkout)
  "Reset FILE from revision REV.

If prefix argument CHECKOUT is non-nil, checkout FILE from REV
instead.

\(git reset REV -- FILE)
\(git checkout REV -- FILE)"
  (interactive
   (let ((rev (magit-read-branch-or-commit "Revision")))
     (list rev (magit-read-file-from-rev rev "File") current-prefix-arg)))
  (magit-with-toplevel
    (magit-run-git (if checkout "checkout" "reset")
                   rev "--" file)))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.