docs: Gitea 사용 가이드 추가

- 매일 사용하는 Git 워크플로우 정리
- 커밋 메시지 규칙 및 예시
- HTTPS/SSH 접속 방법 설명
- 프로젝트 구조 템플릿 제공
- 자주 발생하는 문제 해결방법
- /Users/hyungiahn/Documents/code 표준 경로 설정
This commit is contained in:
Hyungi Ahn
2025-07-15 07:17:48 +09:00
parent 50149096cb
commit 2fac5abbbb

414
gitea-사용가이드.md Normal file
View File

@@ -0,0 +1,414 @@
# Gitea 작성 가이드
## 📋 매일 사용하는 Git 워크플로우
### 작업 시작 전에 항상!
```bash
git pull origin main
```
> 다른 기기에서 작업했거나 웹에서 수정한 내용을 받아옵니다.
### 작업 완료 후에 항상!
```bash
git add .
git commit -m "적절한 커밋 메시지"
git push origin main
```
> 변경사항을 저장하고 Gitea에 업로드합니다.
## 📝 커밋 메시지 작성 규칙
### Conventional Commits 스타일 (영어)
```bash
feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 변경
style: 코드 포맷팅 (기능 변경 없음)
refactor: 코드 리팩토링
test: 테스트 추가/수정
chore: 빌드나 설정 변경
```
### 실제 사용 예시
```bash
git commit -m "feat: 계산기 기능 추가 및 오류 처리"
git commit -m "fix: 0으로 나누기 오류 해결"
git commit -m "docs: README에 설치 가이드 추가"
git commit -m "refactor: main.py 코드 구조 개선"
git commit -m "test: 수학 연산 단위 테스트 추가"
```
## 📁 추천 폴더 구조
### 전체 코드 작업공간
```
/Users/hyungiahn/Documents/code/
├── coding-guide/ # 이 가이드 저장소
├── python-projects/ # Python 프로젝트들
│ ├── calculator/
│ ├── web-scraper/
│ └── data-analysis/
├── javascript-projects/ # JavaScript 프로젝트들
│ ├── weather-app/
│ ├── todo-list/
│ └── game-collection/
├── learning/ # 학습 프로젝트들
│ ├── algorithms/
│ ├── tutorials/
│ └── practice/
└── experiments/ # 실험적인 코드들
├── ai-testing/
└── new-tech/
```
### 새 프로젝트 시작시
```bash
# 항상 code 폴더에서 시작
cd /Users/hyungiahn/Documents/code
# 새 프로젝트 클론 또는 생성
git clone http://git.hyungi.net/hyungi/new-project.git
# 또는
mkdir new-project && cd new-project
git init
```
## 🗂️ 개별 프로젝트 폴더 구조 템플릿
### 하나의 프로젝트만 있는 경우
```
내-프로젝트/
├── README.md # 프로젝트 설명
├── requirements.txt # Python 의존성 목록
├── package.json # JavaScript 의존성 목록
├── .gitignore # Git에서 제외할 파일들
├── src/ # 실제 코드 폴더
│ ├── main.py
│ └── utils/
├── tests/ # 테스트 코드 폴더
├── docs/ # 문서 폴더
└── examples/ # 사용 예시 폴더
```
### 여러 프로젝트를 모아둔 경우
```
코딩-프로젝트들/
├── README.md
├── python/
│ ├── 계산기/
│ ├── 웹크롤러/
│ └── 데이터분석/
├── javascript/
│ ├── 날씨앱/
│ ├── 게임모음/
│ └── 할일관리/
├── 학습노트/
│ ├── 알고리즘/
│ └── 디자인패턴/
└── 유틸스크립트/
```
## 📖 README.md 작성 템플릿
```markdown
# 프로젝트 이름
## 📖 이 프로젝트는 무엇인가요?
프로젝트에 대한 간단한 설명을 여기에 적어주세요.
## 🚀 어떻게 설치하고 실행하나요?
```bash
# 필요한 라이브러리 설치
npm install
# 또는
pip install -r requirements.txt
# 프로그램 실행
npm start
# 또는
python src/main.py
```
## 💡 주요 기능들
- 기능 1: 어떤 일을 하는지 설명
- 기능 2: 어떤 일을 하는지 설명
- 기능 3: 어떤 일을 하는지 설명
## 🔧 사용 방법
```python
# 코드 사용 예시를 여기에
from src.main import Calculator
calc = Calculator()
result = calc.add(5, 3)
print(result) # 8
```
## 📝 개발하면서 배운 것들
### 새로 알게 된 것
- 학습 포인트 1
- 학습 포인트 2
- 학습 포인트 3
### 앞으로 추가하고 싶은 기능
- 개선 계획 1
- 개선 계획 2
- 개선 계획 3
## 📅 개발 일지
- 2024-07-15: 기본 기능 구현 완료
- 2024-07-16: 오류 처리 기능 추가
- 2024-07-17: 사용자 인터페이스 개선
```
## 🚫 .gitignore 파일 설정 (Git에서 제외할 파일들)
### Python 프로젝트용
```
# Python 캐시 파일들
__pycache__/
*.pyc
*.pyo
# 가상환경 폴더
venv/
env/
.venv/
# 설정 파일 (비밀번호 등이 들어있는)
.env
config.ini
secrets.json
# 로그 파일
*.log
# 맥/윈도우 시스템 파일
.DS_Store
Thumbs.db
```
### JavaScript 프로젝트용
```
# Node.js 모듈들
node_modules/
# 빌드 결과물
dist/
build/
# 환경 설정 파일
.env
.env.local
.env.production
# 로그 파일
npm-debug.log*
yarn-debug.log*
# 시스템 파일
.DS_Store
Thumbs.db
```
### 모든 프로젝트 공통
```
# 에디터 설정 폴더
.vscode/
.idea/
# 임시 파일들
*.swp
*.tmp
*.bak
# 압축 파일들 (용량이 큰)
*.zip
*.tar.gz
```
## 🔧 Git 처음 설정하기
### 맨 처음 한 번만 하는 설정
```bash
# 내 이름과 이메일 등록
git config --global user.name "홍길동"
git config --global user.email "gildong@example.com"
# 코드 작업 폴더로 이동
cd /Users/hyungiahn/Documents/code
# Gitea에서 저장소 가져오기 (리버스 프록시 환경)
git clone http://git.hyungi.net/사용자명/저장소명.git
cd 저장소명
```
### SSH 키 설정하기 (비밀번호 없이 사용하려면)
```bash
# SSH 키 만들기
ssh-keygen -t ed25519 -C "gildong@example.com"
# 공개키 내용 확인하기
cat ~/.ssh/id_ed25519.pub
# 위 내용을 복사해서 Gitea 설정에서 SSH 키로 등록
# 등록 후에는 이렇게 주소 변경
git remote set-url origin git@gitssh.hyungi.net:사용자명/저장소명.git
```
## 🔄 브랜치 사용하기 (고급 기능, 선택사항)
### 새로운 기능을 개발할 때
```bash
# 새 브랜치 만들기
git checkout -b feature/새로운기능
# 개발하고 커밋하기
git add .
git commit -m "feat: 새로운 기능 구현"
# 메인 브랜치로 돌아가서 합치기
git checkout main
git merge feature/새로운기능
git push origin main
# 다 쓴 브랜치 삭제하기
git branch -d feature/새로운기능
```
## ✅ 새 프로젝트 시작할 때 체크리스트
### Gitea 웹에서 하는 일
- [ ] 새 저장소 만들기
- [ ] README.md 파일 포함하기
- [ ] .gitignore 템플릿 선택하기
- [ ] 라이선스 선택하기 (MIT 추천)
### 내 컴퓨터에서 하는 일
- [ ] `git clone` 으로 저장소 가져오기
- [ ] README.md 내용 채우기
- [ ] .gitignore 파일 확인하고 수정하기
- [ ] 첫 번째 커밋하고 푸시하기
## 📅 매일/주간 할 일 체크리스트
### 매일 코딩할 때
- [ ] `git pull origin main` (작업 시작 전)
- [ ] 코드 작성하고 수정하기
- [ ] `git add .` (변경사항 스테이징)
- [ ] `git commit -m "메시지"` (커밋하기)
- [ ] `git push origin main` (Gitea에 업로드)
### 일주일에 한 번 정리할 때
- [ ] README.md 파일 업데이트하기
- [ ] 안 쓰는 파일들 정리하기
- [ ] 학습 노트 정리해서 추가하기
- [ ] 다음 주 개발 계획 세우기
## 🎯 자주 사용하는 Git 명령어들
### 현재 상태 확인하기
```bash
git status # 지금 어떤 파일이 변경되었는지 보기
git log --oneline -10 # 최근 10개 커밋 간단히 보기
git diff # 정확히 어떤 부분이 바뀌었는지 보기
```
### 실수했을 때 되돌리기
```bash
git reset HEAD~1 # 마지막 커밋 취소 (파일 변경사항은 그대로)
git checkout -- 파일명 # 특정 파일의 변경사항 취소
git clean -fd # 추적되지 않는 새 파일들 삭제
```
### 브랜치 관리하기
```bash
git branch # 현재 있는 브랜치들 보기
git branch -d 브랜치명 # 브랜치 삭제하기
git checkout 브랜치명 # 다른 브랜치로 이동하기
```
### 원격 저장소 관리하기
```bash
git remote -v # 연결된 원격 저장소 주소 보기
git fetch origin # 원격 저장소 정보만 가져오기 (병합은 안함)
git pull origin main # 원격 저장소 내용 가져와서 자동 병합
```
## 💡 리버스 프록시 환경 설정 팁
### 현재 환경 구성
```
HTTP Git: git.hyungi.net → DS1525+ 10300 포트 (Gitea 웹/HTTP)
SSH Git: gitssh.hyungi.net → DS1525+ 10322 포트 (Gitea SSH)
```
### HTTP 접속 (웹/Git)
```bash
# 웹 브라우저에서
http://git.hyungi.net
# Git 명령어에서
git clone http://git.hyungi.net/사용자명/저장소명.git
```
### SSH 접속 (Git)
```bash
# SSH Git 클론 (git@ 는 그대로, 뒤에 본인 계정명)
git clone git@gitssh.hyungi.net:본인계정명/저장소명.git
# 예시: hyungi 계정의 my-project 저장소
git clone git@gitssh.hyungi.net:hyungi/my-project.git
# 기존 저장소 SSH로 변경
git remote set-url origin git@gitssh.hyungi.net:hyungi/저장소명.git
```
### SSH 설정 파일 (선택사항)
```bash
# ~/.ssh/config 파일 생성
nano ~/.ssh/config
# 아래 내용 추가:
Host gitssh.hyungi.net
HostName gitssh.hyungi.net
User git
IdentityFile ~/.ssh/id_ed25519
```
## 🆘 자주 발생하는 문제와 해결방법
### 1. "Your branch is behind" 오류가 날 때
```bash
# 원인: 다른 곳에서 변경한 내용이 있음
# 해결: 먼저 pull 받고 나서 push
git pull origin main
git push origin main
```
### 2. "conflict" (충돌) 오류가 날 때
```bash
# 파일을 열어서 충돌 부분을 직접 수정
# <<<<<<< HEAD 와 >>>>>>> 사이의 내용을 정리
# 수정 후 다시 커밋
git add .
git commit -m "fix: 충돌 해결"
git push origin main
```
### 3. 잘못 커밋했을 때
```bash
# 커밋 메시지만 바꾸고 싶을 때
git commit --amend -m "올바른 커밋 메시지"
# 마지막 커밋을 완전히 취소하고 싶을 때
git reset HEAD~1
```
---
📌 **이 가이드를 즐겨찾기해두고 모를 때마다 참고하세요!**
💡 **팁**: 처음에는 복잡해 보이지만, 매일 `pull → add → commit → push` 만 반복하면 금세 익숙해집니다!
📅 **마지막 업데이트**: 2024-07-15