GitHub를 활용해 1인 프로젝트를 관리할 때 필수적으로 거치는
원격 저장소 생성 ➔ 로컬 복사(Clone) ➔ 작업 ➔ 스테이징(Add) ➔ 커밋(Commit) ➔ 푸시(Push)의 전체 과정과,
작업 도중 실수가 발생했을 때 유용한 작업 취소 및 되돌리기(Restore/Reset/Revert) 방법을 알기 쉽게 정리해 보겠습니다.
1. 원격 저장소(Remote Repository) 생성하기
가장 먼저 GitHub 웹사이트에서 프로젝트의 중심이 될 원격 저장소를 생성합니다.
📌 생성 절차 및 옵션
- GitHub 우측 상단의 + 버튼 클릭 ➔ New repository 선택
- General 설정:
- Repository name: my_project (프로젝트의 성격을 나타내는 직관적인 이름으로 지정)
- Description: git 사용 연습 (저장소에 대한 간단한 설명 입력)
- Configuration 설정:
- Visibility: Public(공개) 또는 Private(비공개) 선택 (팀 작업이나 보안이 필요한 소스코드는 Private 권장)
- Add a README file: ON (프로젝트 소개 문서를 기본 생성합니다. OFF로 생성 후 나중에 직접 만들어도 무방합니다.)
- Add .gitignore: Python 검색 후 선택



💡 .gitignore 파일이란? Python 실행 시 생성되는 임시 파일, 가상환경 폴더(venv), 데이터베이스 비밀번호가 담긴 환경변수 파일(.env) 등 Git이 추적할 필요가 없거나 외부에 유출되면 안 되는 파일들을 자동으로 제외해 주는 아주 중요한 설정 파일입니다.
- Add a license: 현재는 미선택 (추후 Open Source 라이선스가 필요한 경우 선택)
4. Create repository 버튼 클릭으로 원격 저장소 생성 완료!
2. 원격 저장소 로컬 PC로 클론(Clone)하기
생성된 원격 저장소를 내 컴퓨터(로컬 PC)로 가져오는 작업입니다.
📌 Clone 수행 과정
- 생성된 GitHub 저장소 메인 화면에서 초록색 Code 버튼 클릭 ➔ SSH 또는 HTTPS 주소 복사
- 로컬 PC의 터미널(CMD / PowerShell / Bash)에서 작업할 디렉토리로 이동:

C:\Users\Dell3571> cd Desktop/workspace
복사한 원격 저장소 주소를 이용해 클론 실행:
git clone git@github.com:[유저아이디]/my_project.git
Cloning into 'my_project'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (4/4), done.
클론이 완료되면 my_project 폴더가 생성됩니다. VS Code 등의 에디터로 해당 폴더를 열어 작업을 시작합니다.

3. 1인 개발 형상관리 워크플로우 (개발 ➔ 스테이징 ➔ 커밋 ➔ 푸시)
Git으로 코드 이력을 관리할 때는 크게 3가지 영역(Working Directory ➔ Staging Area ➔ Repository)을 거치게 됩니다.
[ Working Directory ] ──(git add)──> [ Staging Area ] ──(git commit)──> [ Local Repo ] ──(git push)──> [ Remote Repo ]
(코드 작성/수정) (장바구니) (로컬 기록) (GitHub)
1) 기능 개발 (Working Directory)
새로운 파일 app.py를 생성하고 코드를 작성합니다.
print("hi")

2) 스테이징 (Staging / git add)

변경 사항을 커밋하기 전에 "장바구니(Staging Area)"에 담는 단계입니다.
- 변경사항 전체 올리기:
git add .
- 특정 파일만 올리기:
git add app.py

🔄 [취소하기] 스테이징 되돌리기 (Unstage)
장바구니에 잘못 담은 파일을 다시 작업 영역으로 되돌립니다.
- 전체 파일 스테이징 취소:
git restore --staged .
- 특정 파일 스테이징 취소:
git restore --staged app.py
3) 커밋 (Commit / git commit)
스테이징 영역에 올라온 파일들을 어떤 작업을 했는지 설명하는 메모와 함께 로컬 저장소(.git)에 영구적으로 기록합니다.
git commit -m "Feat: 메인코드 작성"
💡 좋은 커밋 메시지 작성 태그 (Commit Convention)
- Feat: 새로운 기능 추가
- Fix: 버그 수정
- Docs: 문서 수정 (README 등)
- Refactor: 코드 리팩토링 (기능 변경 없는 구조 개선)
- Chore: 빌드 업무, 패키지 매니저 설정 등

🔄 [취소하기] 로컬 커밋 되돌리기 (git reset)
이미 수행한 커밋을 취소하고 이전 상태로 되돌릴 수 있습니다. reset 명령어의 옵션 차이를 이해하는 것이 중요합니다.
(이건 직접 해보시면 바로 느낌 옵니다.)
- --soft: 코드는 유지하고, 커밋만 취소하여 파일을 스테이징(Staging) 상태로 되돌립니다.
git reset --soft HEAD^
- --mixed (기본값): 코드는 유지하고, 커밋과 스테이징을 모두 취소하여 개발(Unstaged) 상태로 되돌립니다.
git reset HEAD^
- --hard: 커밋, 스테이징 취소는 물론 작성했던 코드까지 완전히 파기하고 이전 커밋 시점으로 되돌립니다. (※ 복구가 어려우므로 주의해서 사용해야 합니다.)
git reset --hard HEAD^
4) 푸시 (Push / git push)
로컬 저장소에 기록된 커밋들을 GitHub 원격 저장소로 업로드(동기화)합니다.
git push origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Writing objects: 100% (3/3), 341 bytes | 341.00 KiB/s, done.
To github.com:ucoccto/my_project.git
5ab9259..f0f2055 main -> main
푸시 완료 후 GitHub 웹사이트를 새로고침하면 내가 작성한 파일과 커밋 메시지가 정상적으로 반영된 것을 확인할 수 있습니다.
4. 이미 푸시한 작업 안전하게 취소하기 (git revert)
원격 저장소(GitHub)에 이미 git push까지 완료된 커밋을 취소할 때, git reset으로 히스토리를 강제로 삭제하고 푸시하면 원격 저장소와의 이력이 꼬여 협업이나 추적에 문제가 생길 수 있습니다.
이때는 이전 커밋을 삭제하는 것이 아니라, 해당 커밋의 작업을 반대로 수행하는 '새로운 커밋'을 생성하는 revert를 사용하는 것이 안전합니다.
# 가장 최근 푸시된 커밋의 반대 작업을 담은 커밋 생성
git revert HEAD
git revert를 실행하면 에디터가 열리면서 리버트 커밋 메시지를 작성하게 됩니다.
저장 후 닫은 뒤, 다시 git push origin main을 해주면 안전하게 취소 이력이 반영됩니다.
🖐️ 요약 및 정리
- 원격 저장소 생성: GitHub에서 .gitignore 설정과 함께 저장소 생성
- 클론: git clone <주소> 명령으로 내 PC로 가져오기
- 기본 루틴:
- 파일 작성/수정 ➔ git add . (스테이징) ➔ git commit -m "메시지" (로컬 기록) ➔ git push origin main (원격 업로드)
- 취소 명령어 정리:
- 스테이징 취소: git restore --staged <파일명>
- 로컬 커밋 취소: git reset (--soft / --mixed / --hard) HEAD^
- 푸시된 커밋 취소: git revert HEAD ➔ git push
Git의 단계별 흐름과 되돌리기 명령어들의 차이점을 이해하면 실수하더라도 당황하지 않고 안전하게 프로젝트를 관리하실 수 있습니다!
'코딩 개발 > Git' 카테고리의 다른 글
| AWS EC2 에 GitHub Action으로 CI/CD 해보기 (0) | 2026.08.20 |
|---|---|
| GitHub Actions - CI/CD (./github/workflow/deploy.yml) (0) | 2026.08.18 |
| [Git/GitHub] 개발 필수 도구 Git 기초 개념부터 SSH 인증 및 초기 세팅 (0) | 2026.08.14 |