Git 기초 — 명령어·gitignore·GitHub 한 번에
Git 기초 — 명령어·gitignore·GitHub 한 번에
🎯 이 lesson 을 읽고 나면
이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.
- ▸✅ Git 의 working / staging / repo 3영역
- ▸✅ commit · branch · merge 기본 명령어
- ▸✅ Conventional Commits 메시지 작성
학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.
일상 Git 워크플로우 6단계
1. 편집 — Working Directory 에서 코드 수정
2. git add — 변경 파일 → Staging Area
3. git commit -m — Staging → Local Repo. 메시지로 변경 요약
4. git push — Local → Remote (GitHub). 팀과 공유
5. git pull — Remote 변경 → Local. 동료 작업 동기화
6. branch / merge — 기능별 분기, 완성 후 main 에 합침
> 💡 핵심: 변경(Working) → 준비(Staging) → 저장(Repo) → 공유(Remote) 4 단계 모델.
.gitignore — 절대 올리면 안 되는 것들
1. 새 프로젝트 — github.com/github/gitignore 템플릿 복붙 (Node·Python·Java 등)
2. 패턴 문법 — *.log (확장자) / node_modules/ (폴더) / !important.log (예외)
3. 점검 — git status 로 확인. 무시되어야 할 파일이 untracked 면 .gitignore 누락
4. 이미 커밋된 파일 — .gitignore 추가해도 추적 계속. git rm --cached <file> 로 추적 해제
5. 글로벌 .gitignore — ~/.gitignore_global (모든 프로젝트 공통, 예: .DS_Store)
6. CI 검사 — GitHub Actions 로 비밀 파일 스캔. truffleHog·git-secrets
> ⚠️ 흔한 실수: .env·.key·.pem·.aws/credentials 누락 → 시크릿 노출. 1 회 푸시 시 git 이력 영구 남음.
GitHub 핵심 기능 6가지
1. Repository — 프로젝트 저장소. public/private. README·LICENSE·.gitignore·.github/. fork·star·watch
2. Issues — 버그·기능 요청·토론. label·milestone·assignee. PR과 자동 연결(Closes #123)
3. Pull Request — fork·branch 에서 변경 후 원본에 머지 요청. 코드 리뷰·CI·승인 후 머지
4. Actions (CI/CD) — .github/workflows/*.yml — push·PR 시 자동 빌드·테스트·배포. public repo 무료
5. Codespaces — 브라우저 안 VS Code + 컨테이너. 로컬 셋업 X. PR 리뷰·기여 즉시
6. Copilot — AI 페어 프로그래머. 코드 자동완성·PR 요약·이슈 답변
> 🔗 GitHub 만든 사람들: 2008 Tom Preston-Werner·Chris Wanstrath·PJ Hyett·Scott Chacon → 2018 Microsoft 인수 → 2025 1억+ 개발자.
git reset · revert · cherry-pick · stash — *되돌리기 4총사*
git reset — 과거로 시간 여행
3가지 옵션 비교
가장 자주 쓰는 시나리오:
⚠️ reset --hard 의 위험
- ▸작업 중인 변경 사라짐 (커밋 안 한 것)
- ▸이미 push 한 커밋을 reset 하면 — 다른 사람과 충돌 + force push 필요 + history 깨짐
공유 브랜치에는 reset 금지. 본인 로컬에서만.
git revert — 공개 브랜치의 안전한 되돌리기
"되돌리는 새 커밋" 을 추가. history 는 보존, 변경만 되돌림.
main 브랜치의 잘못된 커밋을 되돌릴 때 표준. 다른 사람의 git pull 도 자연스럽게 적용.
reset vs revert 한 줄
- ▸reset — history 를 다시 씀. 로컬에서만.
- ▸revert — 되돌리는 새 커밋 추가. 어디서나 안전.
git cherry-pick — 특정 커밋만 가져오기
핫픽스를 stable 로 백포트 할 때 자주. 또는 큰 PR 의 일부만 먼저 머지.
git stash — 임시 저장
시나리오: 작업 중인데 갑자기 다른 브랜치로 가야 함.
커밋 안 하고 깔끔히 옮기는 표준 방법.
.gitignore 실전 패턴
프로젝트 시작할 때 즉시 작성. https://gitignore.io 에서 기술 스택별 자동 생성.
커밋 메시지 — bad/good
Conventional Commits 표준:
첫 줄 50자, 본문 72자 줄바꿈. 영어로 명령형 현재시제.
🤖 AI 에게 이렇게 요청해보세요
- ▸"마지막 커밋을 취소하고 변경사항만 stage 에 남기는 git 명령어 알려줘"
- ▸"이 변경사항을 Conventional Commits 메시지로 작성해줘"
- ▸"이 .gitignore 가 Node.js + Python + Java 환경에 충분한지 검토해줘"