작업 과정


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를 통해 내 계정에 복사했거나 내가 권한을 가진 원격 저장소를 내 로컬 컴퓨터로 복제하는 명령어입니다.

작업 흐름 요약:

  1. Fork: 협업할 프로젝트를 내 GitHub 계정으로 복사합니다. (웹)

  2. Clone: 내 계정의 저장소를 내 컴퓨터에 복제합니다. (로컬)

  3. Add & Staging: 로컬에서 파일 수정 후, 커밋할 내용을 스테이징 영역에 추가합니다.

  4. Commit: 스테이징된 내용을 로컬 저장소에 기록합니다.

  5. Pull: 원격 저장소의 최신 변경 내용을 로컬 저장소로 가져와 병합(merge)합니다.

  6. Push: 로컬에 커밋된 내용을 내 원격 저장소에 업로드합니다.

  7. (선택 사항) Pull Request: 원본 프로젝트에 내가 변경한 내용을 병합해달라고 요청합니다. (웹)