<aside> 🗒️
250713 수업 내용
<aside> 📢
Git 관련 주요 개념
1. Repository와 Branch의 차이는?
→ repositroy
: 저장소
문서를 정리해두는 폴더같은 느낌
해당 문서와 관련된 변화 기록이 모두 저장됨
→ branch
: 작업공간의 복사본 같은 느낌
원본은 그대로 두고 브랜치에서 작업 한 뒤에 괜찮으면 원본에 합치는 방식
2. Branch는 왜 만들까요?
3. Commit과 Merge의 차이는?
→ commit
: 작업 저장하기
- 내가 어떤 파일을 어떻게 수정했는지 기록함
(게임에서의 세이브 포인트 느낌!)
→ merge
: 다른 브랜치의 내용을 현재 브랜치에 합치기
- 브랜치(실험) 결과가 좋으면 메인(본문)에 붙이는 작업
→ 예시:
브랜치 A에서 로그인 기능 만들고 → commit으로 저장함 → 괜찮으면 main 브랜치에 merge해서 반영
4. Push / Pull / Pull Request(PR)의 차이는?
→ push
: 내 컴퓨터의 git → github에 업로드
- 수정한 내용을 remote 저장소로 보내는 것
→ pull
: github → 내 컴퓨터에 다운로드
- 다른 사람이 수정한 내용을 내 컴퓨터로 가져오는 것
→ pull request(PR)
: main에 합치기를 요청하는 것.
5. Fork와 Clone의 차이는?
→ clone
: GitHub 저장소를 내 컴퓨터로 복사
- 내가 소유한 저장소를 가져와서 작업
→ fork
: 다른 사람의 GitHub 저장소를 내 GitHub 계정으로 복사
- 수정 권한이 없으니까, 내 GitHub에 복사본을 만들어 실험
- 주로 오픈소스에 기여할 때 사용
→ 즉,
6. (심화) Revert와 Rebase의 차이는?
→ git revert
: 지난 commit을 되돌리는 commit을 추가
- 실수한 걸 취소하는데, 기록은 그대로 남김
- 안전하게 실수 복구
→ git rebase
: 브랜치의 시작점을 다른 곳으로 옮겨서 깔끔하게 정리
- 여러 커밋을 마치 한 줄기처럼 보이게 만듦
→ 예시:
Revert: "이전 변경을 무르기" (근데 그 기록도 남김)
Rebase: "커밋을 예쁘게 다시 그리기" (히스토리 깔끔)
7. (심화) init과 add 명령은 왜 사용할까요?
→ git init
: 저장소 만들기(환경 세팅) → .git 파일 생김(깃 저장소가 되었다는 의미)
→ git add
: 커밋 대기열에 파일 올리기
💡 다른 사람의 프로젝트에 기여할 때 필요한 단계
git clone <https://github.com/내계정/저장소.git>
cd 저장소
git branch -a # 로컬 및 원격 브랜치 확인
git checkout -b feature/기능명 # 새로운 작업 브랜치 생성 및 이동
💡
main
브랜치에서 직접 작업하지 않고 feature 브랜치에서 작업해야 나중에 PR 관리가 수월함