티스토리 뷰
폴더와 깃 저장소
- 깃에서는 변경 사항을 전용 저장소 '리포지터리(repository)'에 저장
- 일반 폴더와 달리 깃 저장소에는 별도의 숨겨진 영역에서 버전관리 시스템에 필요한 변경 이력을 기록함
(일반 폴더와 깃 폴더의 차이점)
- 리포지터리는 프로젝트의 모든 리비전(개정)과 히스토리를 포함하는 데이터베이스와 같음
- 깃 저장소는 크게 로컬 저장소와 원격 저장소로 구분
초기화
$ git init 경로명
$ git init . //현재 폴더를 의미하는 .을 사용해도 됨.
- 이미 존재하는 폴더에 초기화 명령어로 버전 관리 시스템을 위한 숨겨진 영역을 생성하는 작업
- 초기화 명령어 입력시 경로명을 입력하지 않으면 현재 폴더에서 초기화
- git init은 기본적으로 로컬 저장소를 생성한다.
- 초기화로 생성된 숨겨진 .git 폴더는 깃으로 관리되는 모든 파일 및 브랜치 이력을 기록
--> 복사하려면 $ cp -r 원본폴더 복사폴더 이용하여 복사할 것
워킹 디렉터리 working directory == 워킹 트리
* 깃의 저장 공간은 '작업을 하는 공간(working)', '임시로 저장하는 공간(stage)', '실제로 저장하여 기록하는 공간(repository)'로 나뉨
- 워킹 디렉터리: 로컬 저장소에 접근할 수 있으며 실제로 파일을 생성하고 수정하는 공간, 파일을 저장하는 공간
- 파일의 추적
untracked: 워킹 디렉터리에 새로 생성된 파일
tracked : untracked에 있던 파일을 별도의 명령어를 실행($ git add)하여 추적 상태로 변경, 모든 파일을 추적하는 것이 아니라 명령어를 통해 요청 받은 파일들만 추적관리함.
스테이지
- 임시로 저장하는 공간으로 워킹 디렉터리에서 제출된 tracked 파일을 관리
- 커밋 작업과 연관
- 스테이지에서 파일의 콘텐츠 내용을 직접 가지고 있는 것은 아니며 단지 커밋하려는 파일들의 추적 상태만 기록
- 스테이지 상태 확인
$ git status
$ git ls-files --stage
- 스테이지 영역의 상태구분
stage: 깃의 변화 이력 기록이 가능한 상태
unstage: 스테이지 영역에 있는 파일과 워킹 디렉토리에 있는 파일의 내용에 차이가 있을 때(파일이 수정되었을 때)
modified: tracked 상태의 파일이 수정되었을 때
unmodified: tracked && 스테이지에서 한번도 수정하지 않은 원본 파일
파일의 상태 확인
$ git status
- 깃의 상태 메시지 확인 가능
.gitignore
- 모든 파일을 추적하지 않아야 하는 경우(보안상의 문제.. 불필요한 경우 등) 깃에서 관리하지 않도록 설정
- 관리하고 싶지 않은 파일과 폴더는 별도의 .gitignore 설정 파일 안에 나열해서 적어줌
- .gitignore파일은 저장소 폴더의 최상위 디렉너리에 두어야 함
- 파일 표기법
# : 주석
파일명 : 관리대상에서 제외할 파일
*파일명 : 패턴 정의(*는 모든 문자열 대체 가능)
!파일명 : 꼭 추적이 필요한 파일
/ : 디렉터리 표현
깃 저장소 복제
- 외부 저장소를 이용하여 로컬 저장소를 생성하는 것
- 깃의 저장소 복제는 최종 코드 뿐만 아니라 커밋 변화같은 모든 이력까지 내려받음.
$ git clone 원격저장소URL 새폴더이름
- 폴더 이름 지정하지 않으면 공개 저장소에서 사용된 이름과 동일한 이름으로 새 폴더 생성
- git clone 명령어는 자동으로 깃 서버에 접속해 모든 소스코드를 자동으로 내려받음
'Git' 카테고리의 다른 글
[Git] 커밋(Commit) 과정, HEAD 포인터, 스냅샷, 커밋메시지, 로그확인 (0) | 2020.10.07 |
---|---|
[Git] 커밋(Commit) - 파일 생성, 깃에 등록, 등록 취소, 파일 이름 변경 (0) | 2020.10.07 |
[Git] 터미널에서 VSCODE 바로 실행 (0) | 2020.10.03 |
[Git] 깃 실행 (0) | 2020.09.23 |
[Git] 깃과 버전관리 (0) | 2020.09.19 |