6회차: 25/01/16 19:00 ~ 22:00
장소: ZOOM
계획: 24년 동계 모각코
스터디 주제 : Git 총정리
스터디 목표 : Git에서 중요한 부분을 최종적으로 정리해보기
Git과 GitHub를 처음 접하는 사람들을 위해 꼭 알아야 할 주요 개념과 명령어를 하나의 예시를 통해 설명해보겠다. 간단한 프로젝트를 만든다고 가정하고, Git과 GitHub를 사용하는 흐름을 따라갈 것이다.
먼저, 로컬에서 Git으로 관리할 프로젝트 폴더를 만든 뒤, Git 저장소를 초기화해야 한다.
# 새 프로젝트 폴더 생성
mkdir todo-list
cd todo-list
# Git 저장소 초기화
git init
이 명령어를 실행하면 폴더 내부에 .git 폴더가 생성되고, Git이 이 폴더를 버전 관리할 준비를 마침.
todo-list 프로젝트에 README.md 파일을 만들어보고 이를 Git에 추가해보자.
# 파일 생성
echo "# Todo List Project" > README.md
# 현재 파일 상태 확인
git status
# 출력:
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# README.md
# 파일을 Git 스테이징 영역에 추가
git add README.md
git add 명령어는 파일을 "스테이징" 상태로 만들어줌. 스테이징은 Git이 "이 파일을 다음 커밋에 포함하겠다"고 표시하는 단계임.
스테이징된 파일을 커밋해서 버전으로 저장해보자.
git commit -m "초기 커밋: README 파일 추가"
# 출력:
# [master (root-commit) 8aa7e99] 초기 커밋: README 파일 추가
# 1 file changed, 1 insertion(+)
# create mode 100644 README.md
커밋은 프로젝트의 특정 상태를 "스냅샷"으로 저장하는 것. -m 옵션을 사용해 커밋 메시지를 추가하면, 해당 변경사항의 목적이나 설명을 기록할 수 있음.
이제 GitHub에 프로젝트를 올려보자. 먼저 GitHub에서 todo-list라는 이름의 저장소를 생성한 뒤, 로컬 저장소와 연결해야 한다.
# GitHub 원격 저장소 연결
git remote add origin https://github.com/username/todo-list.git
origin이라는 이름으로 GitHub의 저장소를 로컬 저장소와 연결함. 이제 변경 사항을 원격 저장소로 푸시할 준비가 완료됨.
로컬 저장소의 변경사항을 GitHub 원격 저장소에 올려보자.
git push -u origin master
# 출력:
# Enumerating objects: 3, done.
# Counting objects: 100% (3/3), done.
# Writing objects: 100% (3/3), 180 bytes | 180.00 KiB/s, done.
# Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
이 명령어로 master 브랜치에 있는 모든 변경 사항이 GitHub에 업로드됨. 이제 GitHub 저장소에 가면 README 파일이 올라간 것을 확인할 수 있음.
프로젝트에서 새로운 기능을 개발하려면 별도의 브랜치를 만들어 작업하는 게 좋음.
# 새로운 브랜치 생성 및 전환
git checkout -b feature/add-todo-function
# 출력:
# Switched to a new branch 'feature/add-todo-function'
feature/add-todo-function라는 브랜치를 만들어, master와 독립된 상태에서 작업할 수 있음.
기능 개발이 끝나면 작업한 브랜치를 master로 병합해야 함.
# master 브랜치로 이동
git checkout master
# 브랜치 병합
git merge feature/add-todo-function
# 출력:
# Updating 8aa7e99..e5bc1b1
# Fast-forward
# 1 file changed, 10 insertions(+)
병합 결과를 통해 변경 사항이 master에 반영되었음을 확인할 수 있음.
프로젝트의 특정 시점(예: 버전 1.0)을 표시하려면 태그를 생성하면 됨.
# 태그 생성
git tag -a v1.0 -m "첫 번째 릴리즈"
# 태그 푸시
git push origin v1.0
v1.0 태그가 원격 저장소에 업로드되어, 팀원들과 공유 가능함.
잘못된 커밋을 되돌리려면 git revert를 사용해보자.
# 특정 커밋 되돌리기
git revert <커밋 체크섬>
이 명령어는 되돌린다는 내용의 새로운 커밋을 생성해 히스토리를 안전하게 유지함.
긴급 작업이 필요할 때 작업 내용을 임시로 저장할 수 있음.
# 현재 변경 사항을 stash에 저장
git stash
# 저장된 변경 사항 확인
git stash list
# 저장된 변경 사항 다시 적용
git stash apply
