[Git] Git 개념 정리
깃(Git)은 버전 관리 시스템(Version Control System)의 한 종류로, 빠른 속도와 버전 전환이 장점인 프로그램입니다.
깃의 저장소는 로컬 저장소(Local Repository)와 원격 저장소(Remote Repository)가 있습니다. 로컬 저장소는 내 컴퓨터에서 실제 작업하는 폴더를 말하고, 원격 저장소는 구글 드라이브나 N드라이브와 비슷하게 깃허브와 연동된 클라우드 공간을 말합니다.
깃의 작업 공간
Working Directory
개인 코드를 작성하는 공간
Staging Area
작성한 코드를 임시로 올리는 공간
Repository
최종 수정본을 올리는 공간
깃 용어 정리
commit
스테이징 공간에서 로컬 저장소로 파일을 업로드하는 것을 말합니다
push
로컬 저장소에서 원격 저장소로 업로드하는 것을 말합니다.
pull
원격 저장소에서 로컬 저장소로 다운로드 하는 것을 말합니다.
clone
원격 저장소를 내 컴퓨터로 복제하는 것을 말합니다.
fork
다른 사람의 원격 저장소를 내 원격 저장소로 복제하는 것을 말합니다.
깃의 워크플로우
깃의 워크플로우를 간단하게 만들어 봤습니다. 깃의 사용 순서는 다음과 같습니다.
깃 사용 순서
1. 내가 수정해야될 브랜치의 최신 버전과 동기화하기 위해 Pull을 받는다.
2. 수정이 완료되면, 로컬 저장소에 올릴 파일을 선택한 후 Commit 한다.
3. 커밋이 완료되면, 커밋한 내용을 Push 해서 원격 저장소에 배포한다.
깃 사용 예시
간단한 사용 예시를 만들어봤습니다. 우선 원격 저장소에 있는 나는 강아지파.txt라는 파일을 Pull을 받았다고 가정해 봅시다. 별다른 충돌이 없다면, 로컬 저장소에도 똑같이 나는 강아지파.txt라는 파일이 생성됩니다.
이제 이 파일을 내 컴퓨터에서 나는 사실 고양이파.txt라고 수정을 해 봅시다.
깃이 로컬 저장소와 비교 후, 나는 강아지파.txt가 나는 사실 고양이파.txt라는 파일로 변경된 걸 자동으로 파악해서 Staging Area에 올립니다.
Staging Area에 올라간 나는 사실 고양이파.txt 파일을 로컬 저장소로 Commit 합니다.
로컬 저장소에 Commit 된 나는 사실 고양이파.txt 파일을 원격 저장소로 Push 하면, 원격 저장소에 배포되어 프로젝트에 참여 중인 다른 팀원들이 확인할 수 있는 상태가 됩니다.
끝으로
이 글은 파일을 받고, 수정하고, 업로드하는 깃의 기본적인 프로세스를 정리한 글입니다. 이외에도 깃을 사용해 협업을 하다 보면 여러 가지 돌발상황이 발생합니다. 심각한 오류가 발견돼서 부득이하게 버전을 롤백해야 되거나, 다자간 코드 충돌이 나는 등, 이런 변수가 발생할 때 하나하나 문제를 해결해 나가다 보면, 깃의 여러 가지 기능을 자연스럽게 습득할 수 있을 것입니다.