✅ 간단한 개념 요약
각 개념의 역할과 위치
- 워크스페이스 (Work Space)
- 위치: 내 컴퓨터의 작업 디렉토리.
- 역할: 실제로 코드 파일을 작성하고 수정하는 작업 영역입니다. 예를 들어, 프로젝트 폴더 안에 있는 모든 파일이 워크스페이스에 해당합니다.
- 인덱스 (Index)
- 위치: 내 컴퓨터의 Git 내부 영역.
- 역할: 스테이징 영역이라고도 하며, 커밋할 파일의 목록을 준비하는 장소입니다.
git add 명령어로 파일을 인덱스에 추가하여, 어떤 파일이 커밋될지 지정합니다.
- 로컬 저장소 (Local Repository)
- 위치: 내 컴퓨터의 Git 저장소 디렉토리 (.git 폴더).
- 역할: 모든 커밋 히스토리가 저장되는 곳입니다. 로컬에서 작업한 변경 사항을 기록하고 관리합니다.
git commit 명령어로 인덱스에 있는 파일들을 커밋하여 로컬 저장소에 저장합니다.
- 원격 저장소 (Remote Repository)
- 위치: GitHub와 같은 원격 서버.
- 역할: 협업을 위해 로컬 저장소의 커밋을 다른 사람과 공유하는 곳입니다.
git push 명령어로 로컬 저장소의 커밋을 원격 저장소로 전송합니다. 반대로, git pull 명령어로 원격 저장소의 변경 사항을 로컬로 가져올 수 있습니다.
Git의 작동 방식 요약
- 작업 및 수정: 워크스페이스에서 파일을 수정합니다.
- 스테이징: 수정한 파일을 인덱스에 추가합니다 (
git add).
- 커밋: 인덱스에 있는 파일을 로컬 저장소에 저장합니다 (
git commit).
- 푸시: 로컬 저장소의 커밋을 원격 저장소로 전송합니다 (
git push).
- 풀: 원격 저장소의 커밋을 로컬 저장소로 가져옵니다 (
git pull).
비유를 통한 설명
- 워크스페이스 (Work Space): 책상 위에 펼쳐진 작업 공간. 여기서 문서를 작성하고 수정합니다.
- 인덱스 (Index): 서류철에 넣기 전에 책상 위에 잠시 모아두는 공간. 어떤 문서를 서류철에 넣을지 결정합니다.
- 로컬 저장소 (Local Repository): 내 책상 서랍에 있는 서류철. 모든 문서의 사본이 여기 보관됩니다.
- 원격 저장소 (Remote Repository): 사무실의 중앙 문서 보관소. 여러 사람이 접근할 수 있도록 문서를 공유합니다.
예시 명령어
-
파일 수정
echo "Hello, Git!" > hello.txt
-
파일 상태 확인
git status
-
파일 스테이징
git add hello.txt
-
커밋
git commit -m "Add hello.txt with greeting message"
-
푸시
git push origin main
-
풀
git pull origin main
정리
- 워크스페이스: 내 컴퓨터에서 실제로 작업하는 공간.
- 인덱스: 커밋할 파일을 준비하는 스테이징 영역.
- 로컬 저장소: 내 컴퓨터의 Git 저장소.
- 원격 저장소: GitHub와 같은 원격 서버의 저장소.
1. 이슈 정의하기
대부분의 오픈소스를 보면 Issue는 앱 실행 도중 발생하는 문제나 제안을 적는 공간입니다. 하지만 개인 프로젝트를 할때에는 Todo List를 적는 공간으로도 사용할 수 있습니다. 추가로 Issue와 Pull Request는 마크다운으로 스타일링이 가능하여 깔끔하게 볼 수 있습니다.
이슈 정의 예시입니다

이슈를 적는 곳 오른쪽에는 작성자 태그, 라벨 선택, 그리고 Pull Request와 연동할 수 있는 칸이 있습니다.
Assignees: 써있는 그대로 본인을 태그하면 됩니다.
Labels: documentation, bug, enhancement등 이슈내용에 맞는 라벨을 선택하면 됩니다.
Projects: 협업을 여러명이서 할 때 organization을 만들어 Project에서 일정을 관리할 수 있는데 그때 연동할 수 있습니다.
Milestone: 사용해본 적이 없으므로 생략하겠습니다.
Development: 특정 Pull Request와 연동할 수 있으며, 연동시 Pull Request가 머지 되어 닫히게 되면 해당 Issue도 자동으로 닫힙니다.
Submit new issue를 하면 Issues에 열립니다.

이제 본인이 작성한 대로 작업을 진행하면서 완료된 task는 체크를 해나가면 됩니다.
<라벨 종류>
- bug - 버그를 나타냄
- documentation - 문서 개선 또는 추가가 필요함을 나타냄
- duplicate - 유사한 이슈, PR, 디스커션임을 나타냄
- enhancement - 새기능 추가 요청을 나타냄
- good first issue - 처음 기여하려는 사람이 쉽게 해결 가능한 이슈임을 나타냄
- help wanted - 관리자의 의 도움을 원하는 이슈 혹은 PR임을 나타냄
- invalid - 이슈, PR, 디스커션이 더이상 관련이 없음을 나타냄
- question - 이슈, PR, 디스커션에 추가 정보가 필요함을 나타냄
- wontfix - 이슈, PR, 디스커션에대한 작업이 계속되지 않음을 나타냄