GitNotes.7-2.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 7.2: 변경 사항을 되돌리기

작업 디렉토리 내의 특정 파일이나 특정 디렉토리에 대한 변경사항을 되돌리기:

git checkout -- file.txt

역주: git checkout 이용시 커밋이나 stage 하지 않은 변경사항을 되돌립니다

현재 디렉토리 내의 모든 파일 및 서브 디렉토리들에 대해 재귀적(recursively) 으로 모든 작업본들의 변경사항을 되돌리기:

git checkout -- .

변경사항 중 일부분만을 되돌리기 위해서는 --patch 옵션을 이용한다. 각각의 hunk 단위의 변경 사항들마다 사용자는 해당 변경사항을 되돌릴지 말지 결정할 수 있다.

git checkout --patch -- dir

index 에 추가된 변경 사항들을 되돌리기:

git reset --hard

--hard 옵션 없이 위 명령어를 수행할 경우에는 soft reset 을 수행할 것이다.

아직 원격 저장소에 push 하지 않은 로컬 커밋들에 대해서는 soft reset 을 사용할 수 있을 것이다. 이러한 방법으로 커밋들과 파일들에 대한 재작업을 수행할 수 있다.

git reset HEAD~2

위 예제 수행시, 현재 작업본에 해당하는 파일들을 유지한 채 사용자의 마지막 두개의 커밋을 되감기(unwind) 할 것이다. 이 상태에서 사용자는 추가적인 수정사항들과 커밋을 생성할 수 있다.

주의: 여기서 소개된 모든 조작법은 (soft reset 은 제외) 사용자의 변경사항들을 완전히 삭제할 것이다. 보다 안전한 작업을 위해서는 상황에 따라 git stash -p 혹은 git stash 등을 사용하도록 한다. 이후에 stash pop 을 통해 되돌리기 작업을 취소하거나 stash drop 을 이용하여 되돌리기 한 내역을 완전히 삭제할 수 있다.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts