Git 2. Git 개념

한미현·2022년 2월 9일
0

Git

목록 보기
2/12
post-thumbnail

1. 깃 저장소 생성

깃 저장소는 겉으로는 일반 폴더와 비슷하지만 별도의 숨겨진 영역이 있어 이 곳에서 버전 관리 시스템에 필요한 파일 변경이력을 기록한다. 따라서 저장소는 프로젝트의 모든 리비전과 히스토리를 가진 데이터베이스와 같다고 할 수 있다. 즉, 일반 폴더와 깃 저장소의 차이는 숨겨진 영역의 여부이다.

1) 초기화

  • 저장소를 생성하기 위해 가장 먼저 하는 작업
  • 이미 존재하는 폴더에 초기화 명령어로 VCS 관리를 위한 숨겨진 영역을 생성하는 작업
git init 경로명 // 현재 폴더 초기화 시 경로명x

2. 워킹 디렉토리 (워킹 트리)

깃은 VCS의 특성 때문에 저장공간을 논리적으로 분리한다. 크게 작업 공간(working), 임시 저장 공간(stage), 실제 저장하는 공간(repository)로 나눌 수 있는데 이를 통해 깃의 동작과 이력을 좀 더 효율적으로 처리할 수 있다.

  • 파일의 추적 상태
    untracked 상태
    - 워킹 디렉토리에 새로 생성된 파일은 모두 untracked 상태이다. 이 파일을 관리하기 위해서는 추적하라고 통지해 주어야 한다.
    tracked 상태
    - 관리할 파일 목록에 등록된 상태
    - git add 명령어를 이용해 추적되지 않는 상태의 파일들을 추적 상태로 변경해 주어야 한다.

3. 스테이지

워킹 디렉토리에서 제출된 tracked 파일들을 관리하는 임시 저장 공간으로 워킹 디렉토리와 레포지토리 사이에 있는 영역으로 파일의 콘텐츠들을 직접 가지고 있진 않고 커밋하려는 파일의 추적 상태 정보들만 기록한다.

※ 스테이지를 별도 운영하는 이유!
-> 커밋을 빠르게 처리하기 위해서
-> 스테이지 상태는 status 명령어로 확인할 수 있다.

git status
git ls-files --stage // 다른 방법
  • 파일의 상태
    unstage 상태
    - 스테이지 영역에 있는 파일과 워킹 디렉토리 안에 있는 파일 내용에 차이가 있을 때
    - 아직 스테이지 영역으로 등록하지 않은 디렉토리 내 파일 (untracked 이자 unstaged)
    stage 상태
    - 깃의 변화 이력을 기록하기 위해 파일들의 최종 상태가 stage 상태여야 한다.

4. .gitignore

저장소를 다른 사람들과 공유할 때 워킹 디렉토리에 불필요한 파일이 생성되거나 보안에 민감한 파일들이 있다면 분리해서 관리해야 한다. 따라서 깃으로 관리하고 싶지 않은 파일과 폴더는 별도의 .gitignore 설정 파일 안에 나열해서 작성한다.

  • 파일 앞에 점(.)이 있어 숨겨진 파일로 관리된다.
  • .gitignore 파일을 작성할 때는 항상 저장소 폴더의 최상위 디렉토리에 두어야 한다.

1) .gitignore 파일 표기법

#으로 시작하는 줄은 주석으로 처리

# DB 파일 제외
dbinfo.php

* 기호를 사용하여 패턴을 정의. 모든 문자열을 대체할 수 있다. 글로빙 문자를 사용하여 패턴 확장

# 모든 오브젝트 파일 제외
*.obj

③ 제외하지 않는 파일과 필요한 파일은 파일 이름 앞에 느낌표(!) 를 사용한다. not과 같은 의미

# 환경 설정 파일은 제외하면 안 됨
!config.php

④ 디렉토리 표현은 슬래시(/) 기호 사용 (운영체제 마다 다름)

# 현재 디렉토리 안에 있는 파일 무시
/readme.txt
# /pub/ 디렉토리 안의 모든 것을 무시
/pub/
# doc 디렉토리 아래의 모든 .txt 파일 무시
doc/**/*.txt

5. 깃 저장소 복제

외부에 있는 기존 프로젝트를 기반으로 저장소를 생성하고 싶을 때 외부 저장소를 복제해서 생성할 수 있다.

git clone 저장소url 폴더이름

폴더 이름을 지정하지 않는다면 공개 저장소에서 사용된 폴더와 동일한 이름으로 새 폴더를 생성한다.

profile
FE Developer

0개의 댓글