(심화) git의 3가지 공간

박태영·2024년 6월 10일
0

git

목록 보기
13/44
working directory->staging area->repository
tracked
untracked
addstagedcommit˙˙

1. working directory

  • 파일의 수정 사항들이 만들어 지는곳
  • 코드가 작업되는 공간

파일 상태

  1. untracked : 처음 만들어져서 git으로 관리된적이 없는 파일
  2. tracked : 이전에 git으로 관리된 적이 있는 파일

2. staging area

  • working directory 에서 add 명령어를 통해 선택된 파일들의 공간

3. repository

  • staging area 에서 commit 명령어로 커밋된 상태인 파일들의 공간

파일의 삭제

  1. 파일을 하나 삭제하고 git status 명령어 입력

  2. git status 명령어로 삭제된 파일의 로그를 확인 (삭제된 파일이 working directory에만 존재)

  3. git add . 명령어로 삭제된 파일을 staging area로 옮기기

  4. git reset --hard 로 원상태로 복구

  5. 파일을 삭제함과 동시에 staging area로 옮기려면
    git rm (파일명)명령어를 사용하면 된다.

파일의 이동

  1. 파일의 이름을 바꾸면 2가지의 로그가 나타난다

    1. 이전 이름의 파일은 삭제 / 2.바뀐 이름의 파일 추가
  2. git add .해아지만 staging area에 진입과 동시에 rename 처리가 된 것을 알 수 있다.

  3. git mv (파일명) (바꿀 파일명)을 입력하면 위의 과정을 단축시킬 수 있다.
    4.터미널에 입력하면 바로 renamed 처리가 된 것을 알 수 있다.


staging area -> working directory

  • 특정 파일을 staging area에 올려 놓았는데 취소하고 싶은 경우
  • git restore --staged (파일명) 을 사용하여 staging area 에서 working directory로 이동시킨다.
  1. 3개의 파일이 staging area에 올라간 상태
  2. git restore --staged panthers.yaml을 입력해서 하나를 working directory로 옮김

  3. panthers.yaml이 staged가 안된 상태로 변했음을 확인
  4. working directory 파일의 변경점마저 되돌리고 싶다면
    git restore (파일명) 을 이용한다.

    • 파일이 가장 최근의 commit 상태로 돌아간다.
  5. git restore panthers.yaml을 입력

  6. 해당 파일의 working directory 변경점이 사라진 것을 알 수 있다.
  7. git restore --source=(커밋해쉬|HEAD^...) 파일명

  • 파일을 특정 커밋 상태로 되돌림
  • working directory에서 변경된 상태로 인식한다.


git reset의 3가지 옵션

working directory->staging area->repository
tracked
untracked
addstagedcommit
  1. --soft
    • repository에서 삭제하고 staging area까지 변화를 남겨둠 (add 만 된 상태)
  2. --mixed (Default)
    • staging area 에서 제거하고 working directory 까지는 변화를 남겨둠 (로컬에서 수정한 상태)
  3. --hard
    • working directory의 변화까지 완전히 삭제

실습

  1. 파일 하나를 commit 한 후 git reset --mixed (커밋 hash값) 을 해서 staging area로 옮긴다
    • working directory에서 modified된 상태로 reset 된 것을 확인할 수 있다.

profile
어른 아이

0개의 댓글

관련 채용 정보