스택큐힙리스트
Git에서 워크트리 변경사항을 취소하는 방법은 무엇인가요? 본문
인덱스에 없는 작업 복사본의 변경사항을 어떻게 폐기할 수 있나요?
답변 1
현재 작업 디렉토리에있는 모든 미스테이지 파일에 대해 다음을 사용합니다.
git restore .
특정 파일을 사용하려면:
git restore path/to/file/to/revert
그것은 see here에 오버로드된 인수 구별을 제거하여 git switch와 함께 사용되며 대체합니다.
만약 파일에 스테이징된 변경사항과 스테이징되지 않은 변경사항이 있을 경우, git diff에서 보이는 스테이징되지 않은 변경사항만 되돌립니다. git diff --staged에서 보이는 변경사항은 그대로 유지됩니다.
Git 2.23 이전에는
현재 작업 디렉토리에 있는 모든 스테이지되지 않은 파일에 대해:
git checkout -- .
특정 파일에 대해:
git checkout -- path/to/file/to/revert
-- 여기서 모호성 제거를 위해 (이것은 argument disambiguation 로 알려져 있습니다).
답변 2
Git으로 작업을 하다 보면 unstaged changes가 생길 때가 많습니다. 이러한 unstaged changes는 제가 작업하려는 내용과는 무관한 파일들이 변경되어 있을 때 등에 발생합니다. 따라서 이러한 unstaged changes를 버리는 방법은 매우 중요합니다.
Git에서 unstaged changes를 버리는 방법은 git checkout 명령어를 사용하는 것입니다. 우선, git status 명령어를 사용하여 현재 변경 사항을 확인합니다. 그리고 변경되지 않은 파일을 확인하여 지우고 싶은 파일을 선택합니다.
다음으로, git checkout -- 파일명 명령어를 사용하여 unstaged changes를 버립니다. 이 명령어를 실행할 때 파일명 대신에 .을 입력하면 모든 unstaged changes를 버릴 수 있습니다.
하지만 이렇게 unstaged changes를 버리는 것은 매우 조심해야 합니다. 버리고 난 이후에는 변경된 내용을 되돌릴 수 없기 때문입니다. 따라서 unstaged changes를 버리기 전에 반드시 백업을 해 둘 것을 추천합니다.
또한, 이러한 unstaged changes는 원하지 않는 변경 사항이 생길 때 발생하는 것이므로, 작업 시 파일들을 잘 확인하는 습관을 가지는 것이 좋습니다. 이렇게 함으로써 unstaged changes를 방지할 수 있습니다.
결론적으로, unstaged changes를 버리는 방법은 git checkout 명령어를 사용하는 것입니다. 하지만 이를 사용할 때는 신중하게 사용하여야 하며, 이러한 내용이 발생하지 않도록 하는 습관을 가지는 것이 좋습니다.