복귀
깃에서 코드 작업을 되돌리는 방법은 크게 reset과 revert 두 가지로 나뉜다.
- reset
- 커밋을 기준으로 이전 코드로 되돌리는 방법으로 기록한 커밋을 취소한다.
- 이전 코드로 복귀하려면 복귀 시점을 알려 주어야 한다.
- git log를 통해 해시 값을 확인 가능, HAED 포인터를 이용하여 상대적 위치를 지정할 수도 있음
- git reset [옵션] 커밋ID
- soft : 스테이지 영역을 포함한 상태로 복원
- 별도의 메시지가 출력되지 않음
- 복귀 시점까지의 커밋 이력이 사라짐
- 단순히 HEAD 위치를 이동시킴
- mixed : 옵션을 지정하지 않으면 기본값인 mixed로 자동 선택
- 스테이지 상태를 제외하고 복원하기 때문에 Unstaged 상태가 되어 메시지가 빨간색으로 표시됨. 즉, 커밋을 위해선 add 명령어를 실행해야 함.
- hard : 실제 파일이 삭제된 이전 상태로 복원
- soft와 mixed 옵션은 이전 커밋으로 되돌리는 과정에서 실제로 삭제되는 내용이 없는 반면 hard 옵션은 리셋되는 복귀 시점의 커밋 상태와 해당 커밋의 워킹 디렉터리까지 모두 되돌림.
- soft : 스테이지 영역을 포함한 상태로 복원
- revert
- 기존 커밋을 남겨 두고 취소에 대한 새로운 커밋을 생성한다.
- revert 명령어를 사용하면 병합할 때처럼 메시지를 작성할 수 있다.
- git rever 커밋ID
- 리버트는 한 번에 커밋 하나만 취소할 수 있다.
- 여러 커밋을 리버트하려면 최신 커밋부터 순차적으로 취소해야 한다.
- git revert 커밋ID .. 커밋ID
- --mainline : 병합을 취소한 후 체크아웃되는 브랜치를 표시
문제
커밋을 되돌리기 위해서는 두가지 방법이 있다. 두가지 방법과 각각의 차이점을 서술하시오.
- reset : 'git reset 커밋ID'로 커밋을 복귀할 수 있다. 해당 명령어의 특징은 복귀시점으로 HEAD 포인터가 옮겨지며, 복귀시점까지의 커밋이력들이 사라진다.
- revert : 'git revert 커밋ID'로 커밋을 복귀할 수 있다. reset과는 다르게 복귀시점까지의 커밋이력들이 삭제하는 것이 아닌 기존 커밋들을 남겨 두고 취소에 대한 새로운 커밋을 생성한다. 또한 리버트는 한번에 커밋 하나만 취소할 수 있다.
reset 옵션은 무엇이 있으며 각 옵션에 대해 서술하시오.
reset 옵션은 soft, hard, mixed로 나뉘어 있으며 각 옵션은 다음과 같다.
- soft : 스테이지 영역을 포함한 상태로 복원된다.
- mixed : unstaged 상태로 복원된다.
- hard : 실제 파일이 삭제된 이전 상태로 복원된다.
'오픈소스SW' 카테고리의 다른 글
오픈소스SW_Chapter11_서브모듈 (0) | 2022.12.08 |
---|---|
오픈소스SW_Chapter10_배포관리와 태그 (0) | 2022.12.07 |
오픈소스SW_Chpater08_병합과 충돌 (0) | 2022.10.24 |
오픈소스SW_Chapter07_임시 처리 (0) | 2022.10.24 |
오픈소스SW_Chapter05_서버 (0) | 2022.10.10 |