방금 magit 2.1.0으로 업그레이드했습니다. (또한 이맥스 25.0.50 및 자식 2.3.1에도 적용됩니다.)
이전에는 *magit*
버퍼 에서 다음을 수행 할 수있었습니다.
- 스테이지되지 않은 영역에서 덩어리를 선택하십시오.
- 입력 v하려면 yes를 입력 하고 반대로 바꾸십시오.
이것은 편리했다.
그러나 이제 magit 2.1.0에서는 오류가 발생 "Cannot reverse unstaged changes"
합니다.
왜?
오류 메시지에서 힌트를 얻었을 때 더 많은 단계를 거쳐 다소 "뒤로"이기는하지만 여전히이 작업을 수행 할 수 있음을 발견했습니다.
- s덩어리를 태그하십시오. 뒤로 물러서서 커밋 된 상태에 더 가깝게 이동합니다.
- 탐색 영역을 스테이지 영역에서 선택하십시오.
- 를 누르고 v예라고 대답하십시오.
- 그러나 덩어리는 여전히 단계적이므로 결국 u덩어리 를 단속 해야합니다 .
이것이 버그입니까, 아니면 의도적입니까? 후자의 경우 이해하도록 도와 줄 수 있습니까?
업데이트 : 철저한 RTFinfoing 후 두 가지 명령이 있음을 알았습니다.
- v
magit-reverse
작업 트리의 시점에서 변경 사항을 되돌립니다. - k
magit-discard
작업 트리에서 변경 사항을 제거하십시오.
그것은 k magit-discard
내가 v전에 했던 일 을 하는 것처럼 보입니다 . 스테이지되지 않은 덩어리에서 작동합니다.
그래서 실제로 사용하기 위해 근육 기억력을 재교육해야합니다 k. 나는 그것을 자기 답으로 게시 할 수 있습니다. 그러나 나는 그것이 이론적 근거에 대해 여전히 궁금하다고 생각합니다. 왜냐하면 그것이 이해하는 것이 전반적으로 magit을 더 잘 이해하는 데 도움이 될 것이라고 상상하기 때문입니다.
k
이전 버전의 magit에서도 커밋되지 않은 변경 사항을 삭제하고 수행중인 작업에 대한 적절한 명령으로 보입니다. v
git revert : 이전 커밋과 반대로 변경 되는 새로운 커밋 만들기 . 실제로 커밋되지 않은 변경 사항을 되 돌리는 것은 버리는 것과 동일하지만 'revert'는 git 명령과 같은 의미가 있습니다.
v
에 묶여 magit-revert-item
및 unstaged 항목이는 어떻게 사용합니다 (이 용어가, @PythonNut에서 온다 "역") magit-discard-item
(와 같은 또한 바인딩 k
라인 4872 참조 -) 여기를 . 분명히 나는 내가 v
사용하는 법을 배워야 할 때 의 특별한 의미를 배웠다 k
.