본문 바로가기

Git

Git-3가지 공간

수정사항 화살표

  • commit되어 레포지토리에 들어간 후 수정사항이 발생하면 tracked 파일로써 스테이징을 기다리게 됩니다.

 

Working directory

untracked: Add된 적 없는 파일, ignore 된 파일

tracked: Add된 적 있고 변경내역이 있는 파일

git add 명령어로 Staging area로 이동

 

 

Staging area

커밋을 위한 준비 단계

예시: 작업을 위해 선택된 파일들

git commit 명령어로 repository로 이동

 

Repository

.git directory라고도 불림

커밋된 상태

 

어떤 파일을 그릇으로 비유해보겠습니다.

untracked 식기세척기에 들어가 본 적이 없거나 식기세척기 사용이 불가(ignored)한 그릇
tracked 식기세척기에 들어가 본 적이 있고 식기세척기 사용이 가능한 그릇
add 식기세척기에 넣는 행위
staging area 식기세척기 안(에 들어간 상태)
commit 세척(식기세척기 가동)
repository 세척되어 깨끗해진 상태
파일에 수정이 가해짐 그릇이 사용되어 이물질(커밋되지 않은 변경사항)이 묻음
working directory 세척되어야 하는 상태

 

tracked가 된다는 건, Git의 관리대상에 정식으로 등록됨을 의미합니다.
새로 추가되는 파일은 반드시 add해줌으로써, 해당 파일이 tracked될 것임을 명시해야 하는 이유입니다.

 

 

파일의 삭제와 이동

git rm

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

파일의 삭제가 working directory에 있음

git reset --hard로 복원

 

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

파일의 삭제가 Staging area에 있음(git add . 를 같이 해준다)

git reset --hard로 복원

 

 

git mv

tigers.yaml를 zzamtigers.yaml로 이름변경 뒤 git status로 살펴보기

복원 후 git mv tigers.yaml zzamtigers.yaml로 실행 뒤 비교

 

복원후 git mv tigers.yaml zzamtigers.yaml 사용

차이점은 git add . 를 따로 안해줘도 된다.

 

 

파일을 staging area에서 working directory로

                                                         git restore --staged (파일명)

--staged를 빼면 working directory에서도 제거

예전: git reset HEAD (파일명)

 

pumas.yaml ,jaguars.yaml 변경 후 git add .  git status

 

git restore --staegd pumas.yaml 한 결과
git restore pumas.yaml 한 결과 working directory에서도 사라진다.

reset의 세 가지 옵션

--soft: repository에서 staging area로 이동

--mixed (default): repository에서 working directory로 이동

--hard: 수정사항 완전히 삭제

'Git' 카테고리의 다른 글

Git-fetch,pull  (0) 2022.05.09
Git-HEAD  (0) 2022.05.09
Git-GitHub  (0) 2022.05.07
Git-Merger,Rebase  (0) 2022.05.06
Git-branch  (0) 2022.05.06