티스토리 뷰

반응형

레포지토리란?

버전별 프로젝트의 모습과 버전별 변경 사항에 대한 설명이 적힌 공간!

 

 

 Git을 사용하게 되면

.git 디렉토리가 생기는데 이 디렉토리가 레포지토리이다!

 

커밋이란,

프로젝트 디렉토리의 특정 모습을 

하나의 버전으로 남기는 행위 & 결과물

 

레포지토리란,

커밋이 저장되는 곳!

 

 

깃 생성시 접할 수 잇는 에러

untracked는 깃에 아직 추적되지 않고 있다는 의미인데,

git에게 어떤 파일을 버전 관리할 것인지

알려줘야 git이 추적할 수 있는데

알려주지 않았다는 의미임.

 

==> add 해주기!!

 

 

add란?

커밋할 파일을 지정해주는 작업

수정된 파이르이 모습이 커밋에 포함될 것이라고 지정하는 것!

 

add 작업 하는 법

커밋된 걸 확인할 수 있다.

 

 

 

🤔 Git 작동 방식

Git은 내부적으로 크게 3가지 종류의 작업 영역이 있음.

 

1. working directory

2. staging area

3. repository

 

그럼 각각을 알아보자.

 

working directory작업 하는 프로젝트 디렉토리 

staging area는 git add를 한 파일들이 존재하는 영역

커밋하면 staging area에 있는 파일들만 커밋에 반영!!

repositoryworking derectory의 변경 이력 저장됨.

즉, Commit 저장 영역이다.

 

 

예를 들어,

최초 커밋

다음과 같은 파일들을 add 작업해 

 staging area에 올리고

 

commit하면

repository에 다음과 같은 상태로

 git에 등록될 것이다.

 

 

 

🤔 그렇다면 add는 왜 하는걸까?

 

다음의 상황을 보자.

 

staging area

이전의 상황보다 작업이 훨씬 진행된 상황에서

 

git add B.txt 만 실행해서

B.txt만 staging area에 올리면

당연히 B.txt만 staging area에 올라간다.

 

여기서 commit을 하면

A.txt의 파일은 이전 버전 그대로

B.txt 파일만 수정된 버전으로 commit에 반영된다.

 

즉, staging area에 올렸는지의 여부에 따라 최신 모습이 커밋에 반영되는지가 달라진다!!

 


❓ 그래서 staging area가 필요한 이유는 무엇일까?

(working directory에서 바로 커밋하는게 편하지 않을까?)

 

방금의 경우에서 A.txt와 B.txt 모두 수정했지만

B.txt만 최신의 모습으로 보관하고 싶을 때

B.txt만 staging area에 등록 후

commit하여 버전을 관리할 수 있다!

 

즉, staging area가 있기 때문에

원하는 파일만 선별적으로 commit할 수 있는 것이다!!

 

 


  • 참고
    • 코드잇 - Git으로 배우는 버전 관리 강의 중에서,,
반응형

'Git' 카테고리의 다른 글

[GitHub] 깃허브(GitHub) 토큰 생성하기  (0) 2022.05.05
[Git] Git이란? GitHub란?  (0) 2022.04.04