본문 바로가기

Git&GitHub

Git 최초 설정 및 프로젝트 관리

깃 설치 명령어

brew install git

깃 버전 확인 명령어

git --version

 

깃을 사용하는 방법은 총 두가지 -> CLI(ex: iterm 사용), GUI(ex: SourceTree 사용)

 

명령을 내리는 것은 일반적으로 CLI가 편하고, 프로젝트 상태를 상세히 보기에는 보통 GUI가 유용함


Git 최초 설정

처음에 Git 전역으로 사용자 이름과 이메일 주소를 설정(GitHub 계정과는 별개)

-> 어떤 사람이 코드를 작성하였는지 알고, 연락할 용도를 위해 등록

 

git config --global user.name "(본인 이름)"
git config --global user.email "(본인 이메일)"

위 코드를 통해 등록

 

git config --global user.name
git config --global user.email

위 코드를 통해 현재 본인의 user.name과 user.email 설정 확인 가능

 

git config --global init.defaultBranch main

위 코드를 통해 기본 브랜치명 변경이 가능하다. Default 값은 master지만 이는 차별적인 용어이기에 main으로 사용하는 것이 바람직하다!


Git 프로젝트 관리 시작하기

하나의 폴더를 만들고, 이를 IDE에서 열었다고 가정해보자

 

이후 해당 프로젝트의 터미널에서 git init을 입력

 

git init

Git init 명령어를 사용하면 현재 디렉토리를 Git 저장소로 설정하고, Git이 해당 디렉토리의 파일을 추적하고 변경 내역을 기록할 수 있게 해줌

 

위 명령어 수행 시 .git이라는 숨김 폴더가 생성되는데, 여기엔 저장소에 필요한 모든 정보가 담겨있으며, 변경 내역, 브랜치, 원격 저장소 등의 정보가 저장됨

 

이때 이미 Git 저장소가 있는 디렉토리에서 git init을 실행하면 기존 저장소를 재설정하게 되므로 주의해야 함

 

git init을 한 프로젝트에 두개의 파일을 만들었다고 가정해보자

 

이때 처음에 단순히 파일(Lions.yaml, Tigers.yaml)을 생성하고 코드를 작성하였다고 해도 처음에 이 파일들은 UnTracked, 즉 (Git에 의해) 추적되지 않는 상태가 되어있다. 

 

보통 인텔리제이에서는 한개의 파일을 추가할때 이것을 git에 add할까요?? 라는 메세지를 띄우는데 여기서 ok를 누르면 해당 파일들은 add된 상태(== 깃에 의해 추적이 되는 상태)가 된다. 위 사진을 보면 현재 두 파일은 추적하지 않는 파일(Untracked 상태)에 포함되어 있지 않은것을 확인할 수 있다.

 

위와 같이 여러 파일들의 상태를 보고 싶으면 git status를 입력하면 된다.

 

git status

git status는 Git이 추적하고 있는 파일들의 상태를 보여주는 명령어이다.

보통 변경된 파일, Staging Area에 추가된 파일, Staging Area에 없는 파일, 현재 브랜치, 커밋 가능한 변경 내역등의 정보를 보여준다. 


Git 에게 맡기지 않을 것들(.gitignore)

Git의 관리에서 특정 파일/폴더를 배제해야 하는 경우는 크게 두가지로 나눌수 있다. 

 

첫번째로 포함할 필요가 없는 파일이 있다.  ex) 자동으로 생성 또는 다운로드 되는 파일들(빌드 결과물 or 라이브러리)

두번째로 포함하지 말아야 할 파일이 있다. ex) 보안상 민감한 정보들(ex: DB 접근을 위한 아이디 비밀번호가 담긴 yaml or JWT 토큰 발급을 위한 Secret Key)

 

이러한 파일들을 .gitignore 파일을 사용해서 배제할 요소들을 지정할 수 있다.

 

예를들어 DB의 특정 테이블에서 값을 가져오고자 한다면 우선 DB와 커넥션을 맺어야 하기에 아이디 비밀번호가 담긴 설정 파일이 필요하다

 

# Secrets.yaml

id : hello
password : dkskdfj123!@!!!

위 파일이 깃에 의해 관리되지 않는 상태로 하고 싶다면 secrets.yaml을 .gitignore에 작성하면 된다.

 

gitignore 작성 형식

# 이렇게 #를 사용해서 주석

# 모든 file.c
file.c

# 최상위 폴더의 file.c
/file.c

# 모든 .c 확장자 파일
*.c

# .c 확장자지만 무시하지 않을 파일
!not_ignore_this.c

# logs란 이름의 파일 또는 폴더와 그 내용들
logs

# logs란 이름의 폴더와 그 내용들
logs/

# logs 폴더 바로 안의 debug.log와 .c 파일들
logs/debug.log
logs/*.c

# logs 폴더 바로 안, 또는 그 안의 다른 폴더(들) 안의 debug.log
logs/**/debug.log

만약 위와 같이 .yaml 확장자의 파일을 전부다 git의 관리 대상에서 배제한다면 git status에 해당 파일들이 잡히지 않는다.

(즉 깃에 의해 파일의 생성 및 변경과 같은 일련의 작업이 추적되지 않는다는 것)