Develop

Git에 대한 상세 설명 및 사용 방법

issuemaker99 2024. 12. 24. 17:24
728x90

Git이란?

 

Git은 **분산형 버전 관리 시스템(DVCS)**으로, 소스 코드의 변경 이력을 기록하고 협업을 돕는 도구입니다.

리누스 토르발스(Linus Torvalds)가 2005년에 개발했으며, 속도와 효율성을 중시한 구조로 설계되었습니다.


Git의 주요 기능

1. 버전 관리

파일의 변경 이력을 저장하여 이전 상태로 복원할 수 있습니다.

2. 분산형 구조

모든 클라이언트가 전체 코드 히스토리를 복사하여 저장하므로, 중앙 서버 없이도 작업이 가능합니다.

3. 브랜치 및 병합

서로 다른 기능 개발(브랜치)을 병렬적으로 진행하고, 이후 이를 손쉽게 통합(병합)할 수 있습니다.

4. 협업 도구

여러 개발자가 동시에 코드를 관리하며, 충돌을 최소화할 수 있는 도구를 제공합니다.


Git 기본 용어

Repository(레포지토리)

프로젝트의 모든 파일과 히스토리를 관리하는 저장소입니다.

Commit

변경 사항을 기록하는 명령어로, 저장소에 스냅샷을 추가합니다.

Branch

코드 변경을 독립적으로 진행하기 위한 작업 공간입니다.

Merge

브랜치에서 작업한 내용을 병합하는 과정입니다.

Pull

원격 저장소의 변경 사항을 가져옵니다.

Push

로컬 변경 사항을 원격 저장소에 반영합니다.


Git 설치 및 초기 설정

 

1. Git 설치

 

운영체제별로 Git을 설치합니다.

Windows: Git 공식 다운로드 페이지에서 설치 파일 다운로드 후 설치.

macOS: Homebrew를 사용하여 설치:

brew install git


Linux: 패키지 관리자를 통해 설치:

sudo apt install git  # Ubuntu/Debian
sudo yum install git  # CentOS/Fedora


2. Git 초기 설정

 

Git 설치 후 사용자 이름과 이메일을 설정합니다.

이 정보는 커밋 기록에 포함됩니다.

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

 

Git 설정 확인:

git config --list

 


Git 사용 방법: 기본 명령어

 

1. 로컬 레포지토리 생성

 

새 프로젝트 디렉토리 생성 후 Git 초기화:

mkdir my-project
cd my-project
git init

 

결과: .git 폴더가 생성되고, 해당 디렉토리가 Git으로 관리됩니다.


2. 파일 추가 및 상태 확인

 

(1) 파일 추가 및 스테이징

echo "Hello Git" > README.md
git add README.md

 

(2) 현재 상태 확인

git status

 


3. 변경 사항 커밋

 

스테이징된 파일을 커밋:

git commit -m "Initial commit"

 


4. 원격 레포지토리 연결

 

GitHub와 같은 원격 저장소를 연결합니다.

 

(1) GitHub에서 새 저장소 생성

 

GitHub 계정에서 새 저장소를 만듭니다.

 

(2) 원격 저장소 연결

git remote add origin https://github.com/yourusername/my-project.git

 

(3) 초기 코드 푸시

git branch -M main
git push -u origin main

 


Git 브랜치와 병합

 

1. 새 브랜치 생성

git branch feature/new-feature

 

2. 브랜치로 이동

git checkout feature/new-feature

 

3. 브랜치 병합

 

작업 완료 후, 메인 브랜치에 병합:

git checkout main
git merge feature/new-feature

 


협업 시 사용하는 주요 명령어

 

1. 변경 사항 가져오기 (Pull)

git pull origin main

 

2. 충돌 해결

 

충돌이 발생한 경우 수동으로 파일을 수정한 후:

git add .
git commit -m "Resolve merge conflict"

 


Git 명령어 요약

명령어 설명
git init 새로운 로컬 저장소를 생성
git clone <URL> 원격 저장소를 로컬로 복사
git add <파일> 변경된 파일을 스테이징
git commit -m "메시지" 스테이징된 파일을 커밋
git status 현재 상태 확인
git log 커밋 이력 확인
git branch 브랜치 목록 확인
git checkout <브랜치> 브랜치로 이동
git merge <브랜치> 브랜치를 병합
git push 로컬 변경 사항을 원격 저장소에 반영
git pull 원격 저장소의 변경 사항을 가져옴
git remote -v 연결된 원격 저장소 확인

예제: Git으로 프로젝트 관리하기

1. 새 프로젝트 생성

mkdir example-project
cd example-project
git init

 

2. 파일 생성 및 커밋

echo "print('Hello World')" > main.py
git add main.py
git commit -m "Add main.py"

 

3. GitHub에 푸시

git remote add origin https://github.com/yourusername/example-project.git
git push -u origin main

 

4. 새로운 기능 개발

git branch feature/add-function
git checkout feature/add-function
echo "def new_function(): pass" >> main.py
git add main.py
git commit -m "Add new_function"


5. 브랜치 병합

git checkout main
git merge feature/add-function
LIST