🗄️ Backend/GitHub

GitHub 소개 및 초기 설정

hjwjo 2024. 10. 16. 09:29

1. Git 소개

Git은 소스 코드를 관리하기 위한 분산 버전 관리 시스템으로, 여러 개발자들이 동시에 작업할 수 있도록 도와줍니다.
GitHub는 Git을 기반으로 한 웹 플랫폼으로, 개발자들이 온라인에서 프로젝트를 함께 관리하고 협업할 수 있는 공간입니다.
GitHub 방문하기

2. 버전 관리란?

버전 관리는 소스 코드의 변경 이력을 추적하고, 유의미한 변화를 기준으로 버전별로 백업하는 시스템입니다. 이를 통해 이전 버전으로 쉽게 되돌아갈 수 있습니다.


초기 설정

# Git 사용자 정보를 설정합니다.
$ git config --global user.name "본인이름영어로" # 사용자 이름 설정
$ git config --global user.email 본인이메일 # 이메일 설정
$ git config --list # 설정된 정보를 확인합니다.

기본 용어

  • Working Directory: 현재 작업 중인 프로젝트의 최상위 폴더입니다.
  • Staging Area: 커밋을 위해 변경된 파일들이 잠시 대기하는 공간입니다.
  • Repository: 실제 소스 코드가 저장되는 공간입니다.

기본 명령어

1. 디렉토리 이동

# 상위 디렉토리로 이동
cd ..

# 특정 디렉토리로 이동
cd ../course/

2. 파일 복사/붙여넣기

  • 붙여넣기: Shift + Insert

Git 명령어

1. 초기화

# 현재 디렉토리를 Git 저장소로 초기화합니다.
git init

2. 상태 확인

# Staging Area의 파일 상태를 확인합니다.
git status

3. 파일 추가/삭제

# 특정 파일을 Staging Area로 추가
git add 파일명

# 모든 변경 파일을 Staging Area로 추가
git add .

# Staging Area에서 특정 파일 제거
git rm --cached "파일명"

4. 커밋

# Staging Area의 파일을 커밋하여 Repository에 저장
git commit -m "커밋 메시지"

# 커밋 로그 확인
git log

5. 파일 수정 후

# 수정 상태 확인
git status # 'modified'로 표시됩니다.

# 수정된 파일을 Staging Area로 추가
git add 파일명

# Repository에 커밋
git commit -m "수정 내용"

원격 저장소

1. 설정

# 원격 저장소 추가
git remote add <단축이름> <주소>

# 원격 저장소 삭제
git remote remove <단축이름>

# 원격 저장소 목록 확인
git remote -v

2. 푸시/풀

# 원격 저장소에 푸시
git push origin master

# 원격 저장소에서 풀
git pull origin master

# 원격 저장소에서 가져오기 (병합 없음)
git fetch origin master

리셋

1. 커밋 되돌리기

# 모든 변경사항을 초기화
git reset --hard HEAD^

# 변경 사항은 유지하되 커밋만 초기화
git reset --mixed HEAD^

# Staging Area 및 변경 사항 유지, 커밋만 초기화
git reset --soft HEAD^

# 마지막 커밋 시점으로 돌아감
git reset --hard HEAD

브랜치 관리

1. 브랜치 관리

# 새로운 브랜치 생성
git branch 이름

# 브랜치 목록 확인
git branch

# 특정 브랜치로 전환
git checkout 브랜치이름

# 브랜치 병합
git merge 브랜치이름

# 브랜치 삭제
git branch -D 이름

클론

1. 클론

# 원격 저장소를 로컬로 복사
git clone <주소>

충돌 해결

1. 충돌 발생 시

# 충돌 파일을 수정합니다.
<<<<<<< HEAD
내가 쓴 코드
=======
남이 쓴 코드
>>>>>>> 다른 브랜치

# 수정 후
git add 파일명
git commit -m "충돌 해결"
git push

협업 방식

1. Pull Request 방식

  1. 프로젝트를 fork합니다.
  2. git clone으로 로컬에 복사합니다.
  3. 브랜치를 생성하여 수정합니다.
  4. 원격 저장소에 push합니다.
  5. 원 프로젝트에 pull request를 요청합니다.

2. Collaborator 방식

  • 모든 협력자가 동등한 관리 권한을 가집니다.

임시 저장

1. Stash

# 현재 작업 상태를 임시 저장
git stash

# 저장된 Stash 목록 확인
git stash list

# 특정 Stash 적용
git stash apply [stash 이름]

# 특정 Stash 제거
git stash drop [stash 이름]

# 모든 Stash 제거
git stash clear

리베이스

1. 리베이스

# 이력이 맞춰지지 않은 상태에서 병합 시 새로운 브랜치 생성
git rebase

이 포스팅은 Git의 기본적인 사용법과 개념을 정리한 것입니다. 필요에 따라 추가적인 설명이나 예제를 포함할 수 있습니다. Git을 통해 효율적으로 프로젝트를 관리하시기 바랍니다!