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 방식
- 프로젝트를
fork
합니다. git clone
으로 로컬에 복사합니다.- 브랜치를 생성하여 수정합니다.
- 원격 저장소에
push
합니다. - 원 프로젝트에
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을 통해 효율적으로 프로젝트를 관리하시기 바랍니다!