docs: Gitea 사용 가이드 추가
- 매일 사용하는 Git 워크플로우 정리 - 커밋 메시지 규칙 및 예시 - HTTPS/SSH 접속 방법 설명 - 프로젝트 구조 템플릿 제공 - 자주 발생하는 문제 해결방법 - /Users/hyungiahn/Documents/code 표준 경로 설정
This commit is contained in:
414
gitea-사용가이드.md
Normal file
414
gitea-사용가이드.md
Normal 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
|
||||
Reference in New Issue
Block a user