TIL

[TIL] GIT 개념 및 사용법 : add, commit, push, pull

여그린 2022. 10. 5. 15:55

Git 이란?

나의 컴퓨터에서 관리되는 버전 관리 시스템(로컬에서 관리)

 

Git Hub이란?

깃허브에서 제공되는 서버(원격 저장소)로 관리되는 버전 관리 시스템

 

 

결론 : Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근한다.

Git의 작업환경

Git에는 총 3개의 작업환경이 존재한다.

 

1) working directory

프로젝트의 파일을 수정하는 작업영역

 

2) staging area

어느정도 작업하다가 버전 히스토리에 저장할 준비가 되어있는 파일들을 옮겨놓는 영역

 

3) .git directory

버전의 히스토리를 갖고 있는 영역

 

출처 : 드림코딩

 

  • 작업하고 있다가 어느정도 준비가 되었다면 staging area로 파일을 옮겨두고 commit이라는 명령어를 통해서 git 버전 히스토리에 저장할 수 있다.
  • 이렇게 git directory에 저장된 버전들은 checkout이라는 명령어를 통해서 언제든지 원하는 버전으로 돌아갈 수 있다.
  • 그러나 이렇게 저장된 히스토리는 나의 컴퓨터에만 보관되기 때문에 히스토리를 잃어버리는 상황을 대비해 깃 허브와 같은 서버에 push라는 명령어를 통해 서버에 업로드해놓을 수 있다.
  • 다시 서버에 올려둔 파일들을 다시 로컬로 다운받고 싶을 경우 pull이라는 명령어를 이용해 받을 수 있다.

 

 

1) Working Directory

 

 

  • working directory 안에는 두가지로 나눠진다.
  • Track : 깃이 이미 알고 있어 트래킹 하고 있는 파일이라면 track으로 분류된다.
    • Modified, Unmodified : 수정됐는지 유무에 따라 2가지로 나뉜다. (이전 버전과 비교해서 수정된 게 없기 때문에 수정된 파일만 staging area에 옮겨갈 수 있다.)
  • Untrack : 새로 만들어진 파일이거나 기존에 존재하던 프로젝트에서 깃을 초기화하여 깃이 파일에 대한 정보가 없을 경우 untrack으로 분류된다. 

 

2) staging are

워킹 디렉터리에서 작업한 내역을 Git 디렉터리로 커밋 하기 위해 커밋 대상 목록으로 담아두는 장바구니 목록 같은 영역

 

3) git directory

  • 실제로는 .git 이라는 이름의 디렉터리이며, 여러가지 버전의 커밋 데이터들과 Git 프로젝트에 대한 모든 정보를 담고 있는 핵심 데이터베이스 디렉토리

 

 

add란?

현재 디렉토리에 있는 업데이트 된 파일을 전부 스테이징 영역으로 추가한다.

 

commit(커밋)이란?

commit은 현재까지 개발한 지점을 중간저장하는 것 (변경된 파일은 저장하고, 변경되지 않은 파일은 변경되지 않음을 저장한다.)

staging area에 있는 변경사항을 git repository에 옮겨주는 명령어

다른 표현으로는 특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데, 하나하나 스냅샷을 만들어 주는 작업을 commit이라고 한다.

push란?

local storage 파일을 👉 remote repository로 올리는 것을 말한다.

현재 플로젝트에 커밋된 내용을 원격 저장소로 내보내는 명령어

 

pull이란?

remote repository에서 👉 local storage로 파일을 내려받는 것을 말한다.

원격 저장소에서 로컬 저장소로 소스를 가져오는 명령어