Git 사용법

자세한 Git 사용법 - 2 (Git 개념 잡기)

Everyday Growing Engineer 2022. 9. 20. 23:16

1. Git 저장소 생성

1.1 초기화

저장소를 생성하려면 먼저 초기화 작업이 필요함. 

 

$ git init : 숨겨진 영역을 추가합니다. 숨겨진 영역을 추가함으로써 깃 저장소로 변경되는 것입니다.

 

1.2. 숨겨진 폴더

$ ls -a : 숨겨진 파일도 같이 나타냄.   

더보기

. .. .DS_Store .git

앞에 점(.)이 있으면 숨겨진 폴더를 의미함.  

git 저장소를 통째로 복사하고자 할 때는 숨겨진 .git 폴더 까지 같이 복사해야합니다. 

2. 워킹 디렉터리

2.1 워킹 디렉터리란?

깃은 VCS(Version Control System)의 특성 때문에 저장 공간을 논리적으로 분리합니다.

  • 작업을 하는 공간(working)
  • 임시로 저장하는 공간(stage)
  • 실제로 저장하여 기록하는 공간(repository)

2.2. tracked상태와 untracked상대

Git이 다른 VCS보다 뛰어난 것은 지정된 파일들의 모든 것을 추적하는 관리 시스템이기 때문이다. Git은 워킹 디렉터리에 있는 파일들을 '추적됨'과 추적되지 않음' 상태로 구분함

 

tracked 상태

워킹 디렉터리에 새 파일을 추가하면 '추적되지 않음(untracked)' 상태입니다. git add 명령어를 사용하면 추적(tracked) 상태로 변경

 

untracked 상태

실제 작업 중인 파일은 워킹 디렉터리 안에 있습니다. 워킹 디렉터리는 현재 작업 중인 소스 코드를 담고 있으며, 운영 체제도 워킹 디렉터리 안에 있는 파일들만 접근하고 수정할 수 있습니다. 새로 생성된 파일은 모두 추적되지 않음(untracked) 상태입니다.

 

3. 스테이지

스테이지 영역은 워킹 디렉터리에서 제출된 tracked 파일을 관리함. 이영역은 commit 작업과 연관이 매우 많음.

 

3.1 스테이지  = 임시영역

스테이지는 '워킹 디렉터리'와 '실제로 저장하여 기록하는 공간' 사이에 있는 임시 영역입니다. 

  • 스테이지 상태 확인 명령어 :
  • $ git status
  • $ git ls-files --stage

3.2 파일의 stage 상태와 unstage 상태

git이 변화 이력을 기록하려면 파일들의 최종 상태가 stage 상태여야 합니다. 스테이지 영역에 있는 파일과 워킹 디렉터리 안에 있는 파일 내용에 차이가 있을 때는 unstage 상태가 됩니다. git add 명령어로 추가 가능.

 

3.3 modified상태와 unmodified 상태

 

4. 파일의 상태 확인

4.1 명령어로 확인

  • $ git status

4.2 소스트리에서 git 상태 확인

 

5. .gitignore 파일

gitignore은 숨겨진 파일로 관리. 

 

5.1 파일 표기법

(a) 파일에서 #으로 시작되는 줄은 주석처리 합니다. # 없이 완전한 파일 이름을 적어 주면 파일은 git의 관리 대상에서 제외됩니다. 

더보기

# DB 접속 파일을 제외함

dbinfo.php

(b) 애스터리스크(*) 기호를 사용하여 패턴을 정의할 수 있습니다. * 기호는 모든 문자열을 대체할 수 있습니다.

더보기

# 오브젝트 파일을 제외함

*.obj

(c) 반드기 필요한 파일 이름 앞에는 느낌표(!)를 사용합니다.

더보기

# 환경 설정 파일은 제외하면 안됨

!config.php

(d) 운영 체제별로 디렉터리를 표현하는 방법이 다릅니다. 깃에서는 디렉터리를 표현할 때는 리눅스와 같이 슬래시(/) 기호를 사용

더보기

# 현재 디렉터리 안에 있는 파일 무기

/readme.txt

 

# /pup/ 디렉터리 안에 모든 것을 무시

/pup/

 

# doc 디렉터리 아래의 모든 .txt파일 무시

doc/**/*.txt

 

6. git 저장소 복제

$git clone 원격저장소URL 새폴더이름