2013-06-16 1 views
52

질문은 Emacs 기능을위한 Magit 주 모드에 관한 것이지만 명령 행 인터페이스를 통해이를 수행하는 방법에 대해서는 적다.Magit revert single file

로컬 Git 저장소 만 있습니다. 선택한 파일을 이전 버전으로 복원하려면 어떻게합니까? 나는 이것에 대한 힘내 명령은 git checkout HEAD^ path/to/file과 같아야한다고 믿는다. 그러나 나는 너무 틀릴 수도있다. 단지 추측한다.

내가 찾고있는 것은 C-x v uvc-dir 버퍼와 본질적으로 같습니다.

기본적으로 내가 뭘 바라고하는 것은이었다

  • 가 수정 된 파일을 삭제합니다.

  • pull from local repo. Magit이 할 수있을 것 같지 않습니다

그러나 는, 대신를 복원하는 그냥 파일을 삭제하는 것을 선호하는 것 같다.

+0

(1) Magit 히스토리 버퍼는 분명히 그것을 지원합니다 (어떻게 기억하지는 못하지만). 다른 수단이 필요합니까 (예 :'magit-status *')? (2) 기본으로 되돌리려면,'vc' 마이너 모드'C-x v u'를 사용하지 않겠습니까? – lukstafi

+0

커밋되지 않은 변경 사항 (예 : 현재 커밋 된 버전으로 되돌림)을 삭제하거나 이전 커밋으로 되돌 리겠습니까? 'git checkout HEAD file'은 커밋되지 않은 변경을 버립니다. 'git checkout HEAD^file'은 저장소에 대한 가장 최근 커밋에서 파일에 대한 변경 사항 (있는 경우)을 되돌립니다. 그 커밋이 문제의 파일을 포함하지 않는다면,'^'는 효과적으로 중복됩니다. "삭제 및 끌어 오기"요약을 살펴보면 커밋되지 않은 변경 사항 만 삭제하려는 경우 레미의 대답이 원하는 것입니다. – phils

답변

66

magit에서 되돌리려는 덩어리 또는 파일로 이동하고 k을 사용하여 수정 사항을 삭제하면됩니다. 자세한 내용은 관련 문서 https://magit.vc/manual/1.4/magit/Staging-and-Committing.html을 참조하십시오.

+1

조치는 사용 장소에 따라 다릅니다. git이 파일을 추적하지 않으면 파일을 삭제합니다. 그러나 파일이 추적되면 수정을 취소합니다. 파일이 git에 있으면 히스토리에서 완전히 삭제하기가 어렵습니다. –

+2

나는'commit' 이후에 역으로 사용할 수도 있다고 생각한다 : 다른 변경과 함께 파일을 커밋했다면'v'로'되돌리기 '할 수 있고,'k'는 원하는 곳에서 역변환 할 수있다. 변경 사항을 보존합니다. – lukstafi

12

파일을 열면 M-x magit-file-checkout 수 있습니다.

+0

어느 버전의 emacs/magit? –

+0

Magit 2.3.0부터 사용 가능합니다. –

+2

'magit-checkout-file'은 더 이상 사용되지 않으며 대신'magit-file-checkout'을 사용하십시오. – xged