본문 바로가기
Git using(깃 사용하기)

깃(git) 기초 : 명령어, 깃 동작 , 저장소 개념 - git 다루려면 필수!

by 코딩하는 동현😎 2022. 4. 13.

기본 리눅스 명령어 - 맥은 터미널 , 윈도우는 git Bash나 cmd , powershell

pwd : 현재 경로 출력
ls : 현재 폴더의 목록 출력
mkdir gitsyudy02 : gitsyudy02 폴더 만들기 (앞으로 디렉터리라고 부르겠습니다!)
cd gitsyudy02 : gitsyudy02 폴더로 이동

 

그 저장소에서 깃 명령어를 사용하면 됩니다!

git init : gitsyudy02 폴더에서 이 명령어를 수행하면 그 폴더가 깃 로컬저장소가 됩니다. (.git 파일이 생성됨 - 숨김속성)

 

 

깃의 동작 원리


초기화 : 폴더를 깃 저장소로 변경 (git init)
커밋 : 변경된 코드의 이력을 기록 (이전 코드와 현재코드 둘다 저장하면 용량이 너무 크겠죠? 차이만 기록)
브랜치 : 분리 격리된 코드 이력을 기록 (시험삼아 기존에서 새로운 브랜치로 모험하기도 하고, 협업할때 각자 다른 브랜치로 작업하다가 나중에 하나의 완성본으로 병합하기도)
병합 : 기존 이력과 분리된 이력(여러 브랜치들을 하나의 main브랜치로)을 통합함.
푸시 : 로컬 저장소의 이력을 서버로 전송 및 공유(로컬->원격 github)

 

깃의 저장 공간 분류

워킹 디렉터리 : 작업을 하는 공간 - 그냥 코딩하면 여기에 저장됩니다!

스테이지 : 임시로 저장하는 공간(add)

repository : 실제로 저장하고 기록하는 공간 (복귀지점. commit)

 

이렇게 논리적으로 공간을 분리하는 것은 깃의 동작과 이력을 더 효율적으로 처리하기 위한것입니다.

워킹 디렉터리는 말 그대로 로컬 저장소에 접근하는곳으로 실제로 파일을 수정하고 저장하는 공간 입니다.

 

파일의 untracked 상태와 tracked 상태

깃은 워킹 디렉터리에 있는 파일들을 '추적됨'과 '추적되지 않음' 상태로 구분합니다.

이 파일들을 관리하려면 깃에 추적하라고 통지해 줘야합니다

 (git add '파일이름')

(git add . ) 입력하면 그 폴더에 모든 파일을 등록해줍니다.

통지하지 않은 파일은 깃에서 따로 추적하지 않습니다.

 

 

스테이지

 스테이지는 워킹과 리포지토리 사이에 있는 임시 영역입니다.

깃은 워킹 디렉터리에서 작업이 끝난 파일을 스테이지로 잠시 복사합니다.

파일들의 스테이지 상태는 git status 명령어로 확인 할 수 있습니다.

워킹에서 자신이 저장한 파일들이 스테이지에 제대로 올라갔는지 확인하기 위해서 수시로

git status 명령어를 수행해서 체크해줘야합니다.

 

파일의 modified상태와 unmodified상태

워킹에서 등록(git add 파일이름)하면 스테이지에 등록되어 tracked 상태가 돼서

파일을 수정하지 않으면 계속 스테이지 상태에 머무릅니다.

 

워킹에서 파일이 수정되면 modified 상태가 되고, 스테이지에 떨어져나와 unstaged 상태가 됩니다.

[스테이지에서 tracked(추적중) 상태이지만 스테이지에 내용이 제대로 업로드가 안된 unstage 상태인거죠.]

이때는 수정한 내용을 다시 git add를 이용해 stage에 올려줘야합니다.

git status를 통해 unstaged된 파일이 없는지 검사해야합니다.

 

.gitignore 

.gitignore은 git과 ignore(무시하다)의 합성어로 숨김속성의 파일입니다.

깃은 .gitignore에 적혀져 있는 파일들을 추적하거나 관리하지 않습니다.

보통 프로젝트에 관련이 없어서 깃으로 관리해줄 필요가 없거나, 개인정보가 들어있는등 보안에 민감한 파일들을 관리합니다.

VScode로 수정하거나 작성해주시면 됩니다.

 

#현재 디렉터리에 readme.txt 라는 파일 무시

/readme.txt

# pub 디렉터리안에 있는 모든 파일 무시

/pub/ 

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

doc/**/*.txt

반응형

댓글