멀티캠퍼스 데이터분석 4월 24일 특강 내용 — Git 개념, 명령어, GitHub 원격 저장소, Branch
| 항목 | 설명 |
|---|---|
| 코드 저장소 | 코드와 이력을 관리하는 저장소 |
| VCS | Version Control System — 버전 관리 시스템 |
| 핵심 기능 | 코드를 저장하고, 특정 저장 지점으로 되돌아갈 수 있게 해주는 시스템 |
| 방식 | 분산 버전 관리 — 여러 개발 PC와 저장소에 분산해서 저장 |
GitHub는 Git 저장소를 웹에 올려둔 원격 저장소입니다.
버전 관리란 파일의 변화를 시간에 따라 기록하고, 특정 시점의 버전을 다시 가져올 수 있는 것입니다.

| 종류 | 설명 |
|---|---|
| 원격 저장소 (Remote Repo) | 서버에서 관리, 여러 사람이 공유하는 저장소 |
| 로컬 저장소 (Local Repo) | 내 PC 안에 있는 저장소 |

| 영역 | 설명 |
|---|---|
| Working Directory | 로컬 작업 디렉토리 (실제 파일 수정 공간) |
| Staging Area | 커밋 시 반영될 파일을 대기시키는 공간 |
| Local Repo | 로컬에 저장된 커밋 이력 |
| Remote Repo | GitHub 등 원격 저장소 |



# 디렉토리 안 모든 파일 추가
git add .
# 특정 파일만 추가
git add [경로/파일이름]
git commit -m '커밋 메시지'
💡 커밋 메시지는 추가·변경된 사항을 간략히 작성합니다.
타인이 알아볼 수 있도록, 영어로 작성하는 것이 좋습니다.
git push origin master
# git push [원격 저장소 이름] [원격 저장소 브랜치 이름]
로컬 저장소의 변경사항을 원격 저장소(origin)의 브랜치(master)에 반영합니다.
git init 으로 생성된 .git 디렉토리 영역 (숨김 폴더)
파일을 작업 트리에서 생성·수정 후 add 명령어로 스테이지로 이동시킵니다.

스테이지에 있는 파일들을 commit 으로 버전(저장소)으로 만듭니다.
스테이지에 대기하던 파일은 사라지고 저장소에 파일이 생성됩니다.



💡 HEAD → 현재 내가 작업 중인 버전을 가리키는 포인터
master → 기본 브랜치의 이름 (최신 커밋을 가리킴)
특정 두 버전 사이에서 어떤 파일의 무슨 내용이 바뀌었는지 알려줍니다.
git diff


수정 사항을 취소하고 저장소에 있는 파일로 되돌립니다.
git restore [파일명]


파일 내용은 그대로 유지되지만, 스테이징 에어리어에서만 내려옵니다.
즉, 커밋 대기 명단에서 제외시킵니다.








| 명령어 | 설명 |
|---|---|
git revert | 과거의 변경사항을 취소하는 새 커밋을 만듦 (과거를 불러오는 것) |
git reset | 특정 커밋으로 아예 돌아감 (과거로 돌아가는 것) |
💡 revert vs reset 차이
revert→ 이력이 남음, 협업 시 권장reset→ 이력이 사라짐, 혼자 작업할 때 사용




GitHub 서버에 자료를 보내기 전 최초 1회 작업이 필요합니다.


# 원격 저장소 연결
git remote add origin [GitHub 저장소 주소]
# 최초 push
git push -u origin master
문제가 발생했을 때 Issue를 남길 수 있습니다. 해결하면 Close 선택합니다.



💡 Issue는 버그 리포트, 기능 요청, 작업 계획 등 협업 시 소통 도구로 활용합니다.
원격 저장소의 내용을 내 PC로 복사합니다.
git clone [GitHub 저장소 주소]


💡 clone하면 해당 저장소 이름의 폴더가 자동으로 생성됩니다.
브랜치는 각자 독립적인 작업 영역(저장소)입니다.
여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 분리해서 진행할 수 있습니다.



| 명령어 | 설명 |
|---|---|
git init | 로컬 저장소 초기화 |
git add . | 모든 변경 파일 스테이징 |
git add [파일명] | 특정 파일 스테이징 |
git commit -m '메시지' | 스테이징된 파일 버전으로 저장 |
git push origin master | 원격 저장소에 업로드 |
git diff | 변경사항 비교 |
git restore [파일명] | 작업 트리 수정사항 되돌리기 |
git revert | 과거 커밋 취소 (새 커밋 생성) |
git reset | 특정 커밋으로 완전히 되돌아가기 |
git remote add origin [주소] | 원격 저장소 연결 |
git clone [주소] | 원격 저장소 복사 |
Working Directory → git add → Staging Area
↓
git commit
↓
Local Repo
↓
git push
↓
Remote Repo (GitHub)