작업 과정
add
& staging
(스테이징)
로컬에서 파일을 수정하면 Git은 그 변경 사항을 추적하지만 아직 저장소에 저장하지는 않습니다. 이 상태의 변경 사항을 커밋(저장)하기 위해 준비하는 과정을 **스테이징(Staging)**이라고 하며, 이때 사용되는 명령어가 **git add
**입니다.
-
git add <파일 이름>
: 특정 파일의 변경 내용을 스테이징 영역에 추가합니다. -
git add .
: 현재 디렉터리의 모든 변경 내용을 스테이징 영역에 추가합니다.
스테이징 영역은 커밋할 변경 사항들을 모아두는 일종의 “임시 보관소” 역할을 합니다.
commit
(커밋)
**commit
**은 스테이징 영역에 있는 변경 사항들을 하나의 의미 있는 단위로 묶어 로컬 저장소에 영구적으로 기록하는 명령어입니다.
git commit -m "커밋 메시지"
: 스테이징된 변경 사항을 로컬 저장소에 커밋합니다. “커밋 메시지”는 어떤 변경을 했는지 설명하는 내용으로, 나중에 변경 내역을 파악하는 데 매우 중요합니다.
커밋은 push
하기 전까지는 다른 사람에게 보이지 않고, 내 컴퓨터에만 저장됩니다.
push
(푸시)
**push
**는 로컬 저장소에 커밋된 변경 사항들을 원격 저장소로 업로드하는 명령어입니다.
-
git push <원격 저장소 이름> <브랜치 이름>
: 로컬의 커밋 내역을 원격 저장소에 반영하여 다른 사람들과 공유합니다.- 예:
git push origin main
- 예:
fork
& clone
이 두 명령어는 원격 저장소와 관련된 작업입니다.
-
fork
(포크) 🍴: GitHub 같은 웹 서비스에서 다른 사람의 원격 저장소를 내 계정으로 통째로 복사하는 기능입니다. 원본 프로젝트에 직접 수정 권한이 없을 때 사용하며, 내 계정에 복사된 저장소는 원본과 독립적으로 관리됩니다. -
clone
(클론) 🎣:fork
를 통해 내 계정에 복사했거나 내가 권한을 가진 원격 저장소를 내 로컬 컴퓨터로 복제하는 명령어입니다.
작업 흐름 요약:
-
Fork: 협업할 프로젝트를 내 GitHub 계정으로 복사합니다. (웹)
-
Clone: 내 계정의 저장소를 내 컴퓨터에 복제합니다. (로컬)
-
Add & Staging: 로컬에서 파일 수정 후, 커밋할 내용을 스테이징 영역에 추가합니다.
-
Commit: 스테이징된 내용을 로컬 저장소에 기록합니다.
-
Pull: 원격 저장소의 최신 변경 내용을 로컬 저장소로 가져와 병합(merge)합니다.
-
Push: 로컬에 커밋된 내용을 내 원격 저장소에 업로드합니다.
-
(선택 사항) Pull Request: 원본 프로젝트에 내가 변경한 내용을 병합해달라고 요청합니다. (웹)