티스토리 뷰
[Git] Repository와 Commit, add, Git의 작동 방식(working tree, staging area, repository)
da_devel 2022. 4. 5. 18:27레포지토리란?
버전별 프로젝트의 모습과 버전별 변경 사항에 대한 설명이 적힌 공간!
Git을 사용하게 되면
.git 디렉토리가 생기는데 이 디렉토리가 레포지토리이다!
커밋이란,
프로젝트 디렉토리의 특정 모습을
하나의 버전으로 남기는 행위 & 결과물
레포지토리란,
커밋이 저장되는 곳!
깃 생성시 접할 수 잇는 에러
untracked는 깃에 아직 추적되지 않고 있다는 의미인데,
git에게 어떤 파일을 버전 관리할 것인지
알려줘야 git이 추적할 수 있는데
알려주지 않았다는 의미임.
==> add 해주기!!
add란?
커밋할 파일을 지정해주는 작업
수정된 파이르이 모습이 커밋에 포함될 것이라고 지정하는 것!
커밋된 걸 확인할 수 있다.
🤔 Git 작동 방식
Git은 내부적으로 크게 3가지 종류의 작업 영역이 있음.
1. working directory
2. staging area
3. repository
그럼 각각을 알아보자.
working directory는 작업 하는 프로젝트 디렉토리
staging area는 git add를 한 파일들이 존재하는 영역
커밋하면 staging area에 있는 파일들만 커밋에 반영!!
repository는 working derectory의 변경 이력 저장됨.
즉, Commit 저장 영역이다.
예를 들어,
다음과 같은 파일들을 add 작업해
staging area에 올리고
commit하면
repository에 다음과 같은 상태로
git에 등록될 것이다.
🤔 그렇다면 add는 왜 하는걸까?
다음의 상황을 보자.
이전의 상황보다 작업이 훨씬 진행된 상황에서
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 |
- Total
- Today
- Yesterday
- 백준
- 코드
- JPA
- 자바의 정석
- 정보처리산업기사 공부법
- 정보처리 산업기사
- 소스코드
- 풀이
- challenges
- hackerrank
- queue
- 챌린지
- 정보처리산업기사
- 디버깅
- 해커랭크 자바 챌린지
- hackerrank challenges
- 그리디
- LinkedList
- 해커랭크 자바
- BAEKJOON
- 해커랭크
- 해커랭크 챌린지
- 22 정보처리 산업기사
- 22 정보처리산업기사
- ORM
- 개발자
- stack
- Java
- 강의
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |