Git의 3가지 공간

Hyeon Woohyeon·2022년 6월 14일

Git

목록 보기
8/13
post-thumbnail

feat. 얄코 - 얄코님의 강의와 참고자료 활용

📌 Git의 3가지 공간

💡 Working Directory

  • untracked: 아직 tracking이 되지 않은 파일
    • Add 된 적 없는 파일, ignore 된 파일
  • tracked: Git의 관리대상에 등록된 파일
    • Add 된 적 있고 변경내역이 있는 파일
  • git add 명령어로 Staging area로 이동

💡 Staging area

  • tracked & staged 상태 (커밋 하기전 준비 상태)
    • git add 명령어를 통해 파일을 Staging area에 올림
  • git rm --cached를 이용하면 unstage 가능
    (Staging Area-> Working Directory)
  • git diff --cached는 index와 HEAD 사이의 변화를 보여준다.

💡 Repository(.git directory)

  • commit 명령을 실행하면 Staging area의 파일들이 하나의 버전으로 .git directory에 저장
  • 커밋이 된 상태이며, 커밋 후에는 파일들의 상태가 staged 에서 unmodified로 변경된다.



💻 파일의 삭제와 이동

파일 삭제 - git rm

  • tigers.yaml를 삭제해본 뒤 git status로 살펴보기

    • 파일의 삭제가 Working directory에 있음

      • git add . 로 '파일 삭제' 라는 변경사항을 staged 상태로 만들어줌
    • git reset --hard로 복원

  • git rm tigers.yaml 로 삭제하고 git status로 살펴보기

    • git add . 를 하지 않더라도 파일의 삭제가 Staging area에 있음
    • git reset --hard 로 복원

파일 이동 - git mv

  • tigers.yamlzzamtigers.yaml로 이름변경 뒤 git status로 살펴보기
    • tigers.yaml가 삭제되고 zzamtigers.yaml라는 Untracked 파일이 추가 됨.
      • 변경사항은 staged 되지 않은 상태
  • 복원 후 git mv tigers.yaml zzamtigers.yaml로 실행 뒤 비교
    • 바로 Staging area 에 있으며 파일 이름이 변경된 상태라는 것을 알 수 있다.

💻 파일을 Staging area 에서 Working directory

git restore --staged (파일명)
  • --staged를 빼면 Working directory에서도 제거
  • 예전: git reset HEAD (파일명)

  1. 세 개의 파일 변경하고 Staging area 에 추가하기
  • git restore --staged pumas.yaml 실행
    • git restore pumas.yaml 을 입력하면 수정되기 전 상태로 파일이 되돌아간다.


📌 reset 의 세 가지 옵션

  • --soft: repository에서 staging area로 이동
  • --mixed (default): repository에서 working directory로 이동
  • --hard: 수정사항 완전히 삭제

0개의 댓글