MINERVA/Git 2022. 4. 20. 19:28
반응형

정리 방향은 Git 역사, 철학등은 모두 스킵하고, 클라이언트(개발자) 측면에서 필수적인 부분만 정리하고자 합니다.

(참고: Git 이전에는 cvs, svn 등이 있었지만, 현재는 Git이 천하통일(?))

 

1. What?(Git 이란?)

- 소스코드/리소스를 효과적으로 관리하기 위해 리누스 토르발스가 개발한  분산형 버전 관리 시스템(VSC)이다.

 

2. How to use?(어떻게 사용)

- "작업 공간에서 작업한 내용을 스테이지에 올려서 로컬 저장소에 커밋하고, 이를 푸시해서 원격 저장소로 보낸다"

 

1) 작업공간(working space)

- 개인 PC에서 작업내용(코드, 이미지 편집)을 담고 있는 프로젝트 폴더를 말함

 

2) 스테이지(stage)

- 작업한 내용이 올라가는 임시 영역을 말함 --> 매우 학문적인 표현 ㅠㅠㅠㅠ

- 직관적으로 표현하면, 작업 공간에서 생성/변경이 발생한 파일을 다음 커밋에 반영하기 위해 추적하는 것을 말함

- 스페이지하는 것을 인덱스(index)한다고 표현하기도 함

- 추적되는 파일은 스테이지 영역(stage area)에 넣는다고 함.

cf) 언스페이지(unsatge): 추적을 해제, 즉 스테이지 영역(stage area)에서 제외시킴

 

[명령어]

- git add : 작업내용을 추적(stage)시키는 명령어입니다.

ex) git add . //현재 폴더의 모든 파일과 디렉토리, 하위 디렉토리에 든 전부를 staging area에 추가한다. 

     git add 파일 //  파일을 staging area에 추가한다.

 

- git rm  : 작업 내용을 추적해제(unstage)시키는 명령어입니다.

 

3) 커밋(commit)

- 작업한 내용을 로컬 저장소에 저장하는 과정

- 스테이지(추적) 내용을 하나로 묶는 것을 말함

- commit과 동시에 로컬 저장소에 저장됨

- 직관적으로 표현:  작업공간(working space)의 스페이지(stage, index)내용을 커밋(변경, 추적내용)해서 저장소에 저장

ex) git commit -m "메시지" //메시지는 어떤 내용을 반영했는지를 나타냅

     git log     // 로컬 저장소(local repository)에서 commit된 이력을 확인

     git status // 마지막 commit 이후 작업 공간(work space)에서 변경이 있는 모든 파일을 보여줌

 

cf) 태그(tag)란? 커밋의 임의 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표를 태그

3) 로컬 저장소(local repository)

-  PC에 작업내용이 저장되는 개인 전용 저장소

ex) git init  DAS // 로컬 저장소 생성

or

GitHub 사용

위와 같이 console or GUI를 통해서 작업공간(working space)를 생성하면,

.git 폴더가 생성되는되데, 이곳이 commit된 내용이 들어가는 로컬 저장소(local repository)입니다.

4) 원격 저장소(remote repository)

- 로컬 저장소에 있는 내용을 원격 서버에 여러사람과 공유 또는 공동작업을 위한 저장소

- Push/ Pull

Push/Pull

- Push: 로컬 저장소의 내용 중 원격 저장소에 반영되지 않은 커밋을 원격 저장소로 보내는 과정
- Pull: 푸시와 반대로 원격 저장소에 있는 내용 중 로컬 저장소에 반영되지 않은 내용을 가져와서 로컬 저장소에 저장하는 과정을 의미합니다. 이를 통해 다른 팀원이 변경하고 푸시한 내용을 로컬 저장소로 가져올 수 있습니다.

푸시 과정에서 충돌(Collision)이 일어나서 푸시가 거절된 경우, 풀을 통해 원격 저장소의 변경 내용을 반영한 뒤 다시 푸시를 시도해야 합니다.

 

// NEXT: 실제 실무중심에서 사용하는 명령어 정리

// 예: 원격 저장소에서 로컬 저장소로 소스코드를 복사 --> git clone 

반응형
posted by choiwonwoo
: