일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JVM
- Git
- 회고록
- 감사기록
- Token
- GitHub
- 클래스
- diary
- 포맷은 최후의 보루
- Java
- 성장기록
- 스파르타내일배움캠프
- static
- 생성자
- #스파르타내일배움캠프TIL
- #내일배움캠프
- TiL_1st_0419
- Github_token
- 객체지향 언어
- Java의 이점
- KPT
- #스파르타내일배움캠프
- 인스턴스
- Diary 해우소
- 해우소
- 내일배움캠프
- 스파르타내일배움캠프TIL
- 메서드
- 스레드
- 변수의 다양성
- Today
- Total
몬그로이
Git/Github Git의 작동 본문
Git의 작업영역
단계에 따라 아래의 세 가지로 나뉜다
1. Working Directory
project를 check out하여 check out 당시 버전의 project를 가져와 놓는 영역
이력을 관리할 대상의 파일들이 놓인 영역으로 .git폴더를 제외한 공간을 말한다
작업자는 이곳에 놓인 파일이나 코드의 일부를 수정할 수도 있고, 다른 파일을 추가할 수도 있다
그렇게 작업한 파일과 코드는 (다른 곳으로 이동하기 전 까지) 그대로 이곳에 저장된다
2. Staging Area (=Index)
Git이 감지한 수정된 파일들이 명령어 add를 통하여 임시로 저장되는 곳
즉, commit을 진행할 파일들을 임시로 놓아두는 곳으로 .git폴더 하위에 파일 형태로 존재한다(index)
작업자가 Working Directory에서 수정하거나 추가한 파일을 기록하고 싶다면 이곳으로 이동시켜야 한다
(add명령어를 실행하면 "주인님, 이러한 사항들이 변경되었습니다"라고 하고 대기시켜 놓는 곳이라고 생각하자)
3. Repository(Git Directory)
다른 저장소의 파일을 clone했을 때 생성되는 directory이면서
대기시켜 놓았던 변경사항들을 기록하기로 결정했을 때 넘어오는 곳
명령어 commit을 통해 Staging Area에서 이곳으로 넘어온다
넘어온 파일들은 committed 상태가 되는데, 이곳에 넘어온 파일이 기록된 상태가 된 것을 의미한다
기록되는 이력 정보는 .git폴더에 저장, 관리 된다
Git이 관리하는 파일의 세 가지 상태
1. modified
파일이 수정된 상태로, git에 의해 감지는 되었지만 commit은 되지 않은 상태
tracked에 속한다
*unmodified 기존파일 그대로의 상태로, 수정하지 않은 상태를 말한다
2. staged
현재 수정한 파일을 곧 commit할 것이라고 표시한 상태
modified 파일과 untracked 파일 모두 staging Area로 옮기면 staged 상태가 된다
3. committed
수정사항에 대한 이력이 repository(로컬 데이터 베이스)에 안전하게 저장된 상태
Git의 관리 하에 들어간 것이므로 tracked 상태이다
또한 모든 이력이 저장되었으므로 unmodified 상태이기도 하다
참고. tracked
저장소에서 관리하는 모든 파일들의 상태
*untracked : 관리대상이 아닌 파일로 추가된 파일(새파일)의 상태이다
하지만 추가한 파일이기 때문에 Working Directory에 위치해 있다
참고
https://post.naver.com/viewer/postView.naver?volumeNo=34909904&memberNo=1085064&vType=VERTICAL
Git의 동작 개념 <실무자편>
[BY 영진닷컴] 오늘은 Git의 3가지 작업 영역을 살펴보려고 합니다 Git은 저장소 안의 파일들을 관리하기...
m.post.naver.com
https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88
Git - Git 기초
Subversion과 Subversion 비슷한 놈들과 Git의 가장 큰 차이점은 데이터를 다루는 방법에 있다. 큰 틀에서 봤을 때 VCS 시스템 대부분은 관리하는 정보가 파일들의 목록이다. CVS, Subversion, Perforce, Bazaar 등
git-scm.com