티스토리 뷰

Git

[Git] 깃 저장소

씌워터 2020. 9. 23. 21:38

폴더와 깃 저장소

- 깃에서는 변경 사항을 전용 저장소 '리포지터리(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 명령어는 자동으로 깃 서버에 접속해 모든 소스코드를 자동으로 내려받음

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함