[Git] Git의 3가지 영역과 작동방식

전혜린·2023년 2월 21일
0

1. Git 의 3가지 영역

1.1. Working Directory

git init
  • git init 명령을 통해 지정된 작업 영역이다.
  • 해당 영역에 파일 생성 및 변경 등 작업이 발생하면 git변경을 감지한다.
  • 작업을 완료하고 이후에 형상을 add하고 commit을 한다.


1.2. Staging Area

  • Working Directory 에서 완료된 작업이 스냅샷으로 저장되는 영역이다.
  • 저장된 스냅샷을 index 라고도 부른다.


1.3. Git Directory(Repository)

  • Staging Area 에 저장된 스냅샷을 commit 하여 영구적으로 저장하는 영역이다.


2. 작동 방식

2.1. ADD : Working Directory의 작업 내용을 Staging Area로 스냅샷으로 저장하기

git add .
  • git add . 명령을 실행하면 Working Directory 에 있던 작업 형상이 Staging Areaindex 로 저장된다.
  • add 가 될 때 이전 index 의 해시값을 참조하여 새로운 index를 생성한다.



2.2. COMMIT: Staging Area의 스냅샷을 Git Directory 로 영구적으로 저장하기

git commit -m "comment"
  • git commit -m "comment" 명령을 실행하면 Staging Area 영역의 스냅샷을 Git Directory 영역에 영구히 저장한다.



2.3. REST: 작업 되돌리기 1

  • reset 명령어의 옵션 3가지로 soft, mixed, hard 가 있다.

    • --soft : Git Directory 에 존재하는 commit 한 작업을 제거
      ex) commit log를 다시 작성하고 싶을 때

      git reset --soft 해시값

    • --mixed : Git Directorycommit 한 작업, Staging Areaindex 를 제거
      ex) 작업 영역에서 수정하고 싶을 때

      git reset --mixed 해시값

    • --hard : Git Directory, Staging Area, Working Directory 내에 존재하는 모든 작업 내용을 제거
      ex) 작업을 처음부터 하고 싶을 때

      git reset --hard 해시값



2.4. REFLOG: 작업 되돌리기 2

git reflog
  • reset 명령어로 commit 내용을 삭제하게된다.
  • git 은 모든 이력을 관리하고 하는데 reflog 명령어를 통해 모든 이력을 확인할 수 있다.
  • 이력을 확인하고 원하는 시점으로 복구가 가능하다.



2.5. AMEND: commit 변경하기

git commit --amend -m "comment"
  • 최종 commit 메세지를 변경할 때 사용한다.



참고

  • Inflearn - 지옥에서 온 관리자 Git (최주호)
profile
개발새발 혤린이

4개의 댓글

comment-user-thumbnail
2023년 2월 22일

점점 정리하는 실력이 늘읍니다. 늘 보고 인네요. 앞으로도 정리 잘 부탁드리겠읍니다.

1개의 답글
comment-user-thumbnail
2023년 2월 22일

안녕하세요 박대기 기자입니다.
Git의 개념 정리를 잘하셨네요. 작동 방식과 개념도 중요하지만 실습을 하는대에 제일 기초적인 설치 및 Setting role까지도 추가를 해보면 어떨까 싶습니다.
늘 잘 보고 있으니 앞으로도 최선을 다 해 주시기 바랍니다.

1개의 답글