반응형
Git은 소스 코드의 이력을 관리하는 시스템이지만 이력을 삭제할 수 있는 reset 기능을 지원합니다.
Git reset 기능 특징
- 소스 코드에 잘못된 내용하고, commit 이력을 push 한 경우 삭제해야 하는 경우 reset 명령어를 사용합니다.
- Git reset 명령어는 과거로 돌리는 기준에 따라서 soft, mixed, hard 옵션을 사용할 수 있습니다.
- GIT reset의 기본 옵션은 mixed입니다.
- git reset의 hard 옵션은 백업이 없는 경우 복구가 불가능할 수 있습니다.
- git reset 명령어를 사용하는 경우는 이력 관리 확장팩을 사용합니다.
- 과거로 돌아갈 때 파일 기준으로 가능하지만, 보통은 head를 이용해서 commit 단위로 사용합니다.
git reset 사용법
git reset 사용법.
- git reset --soft <commit head 주소>
- 실행 때 commit head 이후 commit이 취소되면서 소스 코드는 스테이징 영역에서 확인할 수 있습니다.
- 즉, 이전 commit 이력을 지우고, commit 이력을 하나로 만들 때 사용합니다.
git reset의 mixed 사용법.
- git reset --mixed <commit head 주소>
- git reset 명령어의 옵션이 지정하지 않으면 mixed를 적용합니다.
- soft 옵션하고 같게 HEAD를 지정된 commit으로 이동시키지만, 워킹 디렉터리(change 영역) 소스 코드가 남아 있습니다.
- 즉, 인덱스(스테이징) 영역도 이 commit 상태로 되돌려 주는 기능입니다.
- 소스 코드를 스테이지 영역으로 변경 후 commit을 실행하면 sort 기능하고 갔습니다.
git reset의 hard 사용법.
- git reset --hard <commit head 주소>
- git reset --hard는 commit head 이후의 소스 코드 및 commit 이력을 삭제합니다.
- git reset --hard는 HEAD, 스테이징 영역, 워킹 디렉터리 모두를 지정된 commit 상태 돌아가면서 삭제합니다.
- git에서 아주 강력한 기능으로 주의해서 사용해야 합니다.
- vs code에서는 history 관련 extension을 지원하므로 미리 설치하면 안전합니다.
git 서버에 반영하는 방법
- git reset 적용 후 git 서버에 push 하는 방법은 push --force 옵션을 사용합니다.
반응형