HyunJun 기술 블로그

Git이란? Git 설치하기 본문

Git

Git이란? Git 설치하기

공부 좋아 2023. 8. 10. 09:21
728x90

1. Git의 기본개념

  • Git은 형상 관리 시스템(Version Control System, VCS)으로, 코드의 변경 이력을 기록하고 추적할 수 있게 해준다.
  • GitHub는 Git을 이용한 파일들을 올려놓는 온라인 저장소 역할을 한다.
  • 로컬 환경에서 Git 시스템을 자유자재로 다룰 줄 알아야, GitHub를 통한 협업 및 원격 저장소(Repository)를 사용할 수 있다.
  • Git은 특정 시점마다의 스냅샷(커밋)을 찍어 원하는 구간(코드 작성 시점 등)으로 바로바로 이동하며 버전 관리를 할 수 있다. 이를 통해 코드의 변경 내역을 체계적으로 관리하고 필요할 때마다 이전 버전으로 복구할 수 있다.

 

2. Git 키워드

  • Working Directory: 실제 작업 중인 디렉터리
  • Stage: 커밋을 하기 전, 변경된 파일을 임시로 모아두는 영역
  • Repository: 커밋 기록들이 저장되는 장소
  • add: 파일을 스테이징 영역으로 추가
  • commit: 스테이징 영역에 있는 파일들을 저장소에 기록
  • Branch: 독립적인 작업 공간을 생성하여 여러 작업을 병행할 수 있게 해줌

3. Git의 논리적인 3가지 영역

Git은 저장 공간을 논리적으로 3단계로 나누어 관리한다:

  • Working Directory: 실제 파일들이 존재하고 작업이 이루어지는 디렉터리이다.
  • Staging Area: 커밋을 하기 전에 변경된 파일을 모아놓는 임시 공간이다. 'Index'라고도 불린다.
  • Repository: 모든 커밋 기록들이 저장되는 곳으로, 이곳에 저장된 데이터는 Git의 데이터베이스에 영구적으로 저장된다.

4. File Status LifeCycle

Git에서 파일은 다음과 같은 상태를 거친다:

  • Untracked: Working Directory에 있지만 Git이 추적하지 않는 상태로, 아직 버전 관리를 하지 않는 파일이다.
  • Tracked: Git이 해당 파일의 변경 사항을 추적하고 있는 상태이다.
    • Unmodified: 마지막 커밋 이후로 변경되지 않은 상태이다. 작업 디렉터리의 파일이 최근 커밋된 버전과 동일하다.
    • Modified: 파일이 마지막 커밋 이후 변경된 상태이다. 하지만 아직 Staging Area에 추가되지 않았다.
    • Staged: 변경된 파일이 Staging Area에 추가되어, 다음 커밋에 포함될 준비가 된 상태이다.
  • Deleted: 파일이 작업 디렉터리에서 삭제되었지만, 아직 Staging Area에는 반영되지 않은 상태이다.

 

5. Git의 필요성

  • A, B, C라는 기능을 완성했을 때 C 기능을 없애고 A, B 기능으로 돌아가자라고 한다면 Git에서 간단하게 C 기능을 삭제하면 된다.
  • 반대로 다시 C 기능이 필요하다고 한다면 Git에서 C 기능이 있는 기록을 살리면 된다.
  • Branch를 사용하여 테스트 버전의 파일 관리, 실제 서비스 버전의 파일 관리 등 버전 별로 형상 관리를 할 수 있다.
  • Github라는 존재로 인해 협업에 있어서 없으면 안 되는 존재가 되었다.

 

 

 

 

6. Git 설치하기

각각의 터미널(CMD)에서 아래의 명령어로 git이 설치되어 있나 확인 후, 없으면 설치하고 마지막에 다시 이 명령어로 설치가 잘 되었나 확인하면 된다.

git --version

 

- Window

아래의 홈페이지에서 다운로드하고 설치하면 된다.

Git

 

- Linux 기반

sudo apt install git

 

- Mac 기반

Homebrew를 설치 후, 터미널에서 설치 진행.

sudo brew install git

 

문자열 설정

OS 간 줄바꿈 문자열의 차이로 문제가 발생할 수 있으므로, 본인의 OS에 따라 아래의 설정을 해주어야 한다.

  • Mac, Linux, Unix 계열의 OS는 줄바꿈 문자열은 → \n (LF Line Feed)
  • Windows의 OS 줄바꿈 문자열은 → \r\n (CRLF: Carriage Return + Line Feed)

Linux, Mac, Unix 기반의 경우

git config --global core.autocrlf input

Window 기반의 경우

git config --global core.autocrlf true
728x90
Comments