Magit으로 파일의 특정 버전을 열려면 어떻게해야합니까?


43

현재 분기를 변경하지 않고 Magit을 사용하여 Emacs에서 파일의 특정 버전을 열 수 있습니까?

수정 된 기능이 다른 파일의 기능으로 대체 된 개정판의 일부 로컬 변경 사항을 다시 작성했습니다. 변경 사항을 나란히 비교할 수 있도록 변경 사항의 이전 개정판을 별도의 버퍼에서 열고 싶습니다.

내 현재 해키 솔루션은 Emacs에서 실행 git show <branch pre-rebase>:file > old_file되고 열립니다 old_file.


1
github.com/pidu/git-timemachine 은 각 버전 간 파일을 한 눈에 일시적으로 볼 수 있습니다.
kuanyui

1
@ kuanyui 사용 git-timemachine하지만 코드가 리베이스되어 있기 때문에 이전 코드가 현재 분기의 역사에 포함되지 않으므로 작동하지 않을 것이라고 생각하십니까?
David Holm

답변:


56

을 사용하여 특정 버전의 파일을 볼 수 있습니다 M-x magit-find-file RET <filename> RET.

또는 먼저 diff를 누르고 RETdiff 내부의 파일로 이동 한 다음 RET다시 눌러 diff를 볼 수 있습니다 .


8
이것은 나를 위해 작동합니다. 여기 내가하는 일이 있습니다 : 현재 버전의 파일 M-x magit-log-buffer-file에서 원하는 커밋으로 줄을 이동 한 다음 M-x magit-find-file. 그런 다음 기본값은 해당 커밋입니다. 로그 버퍼에서 선택되지 않았으므로 파일 경로를 지정해야합니다.
Liam

@tarsius, magit-find-file과 비슷하지만 현재 버퍼 파일의 개정판 만 선택하면됩니다. 이미 존재합니까?
ergosys

예, magit-find-file파일 방문 버퍼에서 자신을 사용 RET하고 두 번째 프롬프트에서 입력 하십시오 (적절한 파일이 기본값으로 제공됨).
tarsius

정보와 Magit에 대한 모든 작업에 감사드립니다. 그 성가신 여분의 키 입력을 건너 뛰는 기능을 해킹하는 것은 너무 어렵지 않았으므로 다음 가려움증이 발생할 때까지 행복합니다.
ergosys

29

Magit없이 일반 VC (내장 Emacs)로 수행 할 수 있습니다. C-x v ~원하는 버전을 입력 하고 입력하십시오. 태그와 SHA1 해시와 일반적인 ~1etc 접미사를 이해합니다 .


이것은 까다로운 질문에 대한 답변이 아닙니다. Ruby 질문에 C 답변을 게시 하시겠습니까?
Bryan Ash

4
C의 솔루션이 훨씬 쉬운 경우 @BryanAsh 예.
Markus Strauss
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.