짹뚜 스튜디오

[Git] Git이란? 본문

개발 공부/Git

[Git] Git이란?

짹뚜 2022. 1. 3. 15:36

팀 프로젝트를 진행하면서 많이 겪는 문제가 바로 소스 코드를 공유하고 정리하는 것이다. 이메일이나 메신저를 통해서 소스 코드를 최신 버전으로 공유받고 개발을 진행한 후에 다시 공유를 하다 보면 최신 버전을 관리하기가 힘들어진다. 그리고 소스코드의 백업 파일들을 관리할 때도 "최종.." 또는 "진짜최종..." 이런 식으로 이름을 만들어서 관리하기도 한다. 팀 규모가 적은 경우에는 이런 식으로 진행해도 되지만 만약 규모가 크고 팀원이 수십 명이 되는 프로젝트에서는 이런 식으로 소스코드를 관리하는 게 쉽지 않다.

 

이러한 문제점을 해결하기 위해 나온 것이 버전 관리 시스템이다. 버전 관리 시스템이란 여러 파일을 하나의 버전으로 묶어서 관리를 하는 것이다. 요즘 가장 많이 사용되는 버전 관리 시스템은 Git이다. 

버전 관리를 사용하는 이유

  • 추가되는 기능들의 변경 이력을 저장해 둘 수 있다.
  • 문제가 발생하여 다시 이전 버전으로 돌아가야하는 경우에 변경 이력이 저장되어 있기 때문에 쉽게 돌아갈 수 있다.
  • 각 버전마다 어떤 변경 사항이 있는지 알아보기 쉽다.
  • Github, GitLab, Bitbucket 등 다양한 원격 저장소를 이용해서 백업과 협업에 용이하다.

Git 주요 용어

  • Repository: Git으로 관리하고 있는 폴더를 repository 또는 저장소라고 한다.
  • Local Repository: 내 PC에 저장되어 있는 저장소
  • Remote Repository: Github, GitLab, Bitbucket 등과 같이 클라우드 기반 원격 저장소 서비스에 저장되어 있는 저장소
  • Commit(커밋): Local Repository에 작업한 변경 사항을 저장하기 위한 과정. 스냅샷처럼 변경된 이력을 언제, 누가, 어떻게 변경했는데 로그를 남길 수 있다.
  • Push: Local Repository에 커밋된 내용 중 Remote Repository에 반영되지 않은 정보들을 Remote Repository에 보내기 위한 과정.
  • Pull: Push와는 반대로 Remote Repository의 내용 중 Local Repository에 반영되지 않은 정보들을 Local Repository로 가져오기 위한 과정.
  • Fork: 다른 Remote Repository에서 나의 Remote Repository로 복사해서 가져오는 과정
  • Clone: Remote Repository에서 나의 Local Repository로 복사해서 가져오는 과정

Git의 3가지 상태

Git의 Working Directory에는 두가지의 영역이 있다. 여기서 Working Directory란 Remote Repository에서 내 PC로 Clone 해온 Git 프로젝트 파일들이 있는 디렉터리이다.

 

  • Untracked Area: Git이 관리하고 있지 않은 영역
  • Tracked Area: Git이 관리하고 있는 영역

그중에 Tracked Area 내부에서도 3가지 상태로 나누어집니다.

 

  • Unmodified: 기존에 커밋한 파일을 수정하지 않은 상태
  • Modified: 기존에 커밋한 파일을 수정한 상태
  • Staged (Staging Area): 수정한 파일을 곧 커밋할 것이라고 표시한 상태

Git 명령어

  • git init: 일반 폴더를 Git Repository로 초기화해준다.
  • git status: 현재 Repository 상태를 출력한다. 커밋이 필요한 파일이 있는지 또는 수정된 파일이 있는지를 볼 수 있다.
  • git add: 커밋을 하기 전 수정된 파일들을 Git이 관리할 수 있게 Staging Area로 옮긴다. (스냅샷을 찍는다.)
  • git commit: Staing Area에 있는 파일들을 Local Repository에 저장한다.
  • git push <Remote> <Branch>: Local Repository에 커밋한 내용들을 Remote Repository에 업로드한다.
  • git pull <Remote> <Branch>: Remote Repository에 있는 변경사항들을 Local Repository에 다운로드한다.
  • git remote add <Remote 이름> <URL>: Local Repository를 Remote Repository와 연결한다.

'개발 공부 > Git' 카테고리의 다른 글

[Github Actions] skip ci  (0) 2022.07.06
Comments