Files
git-workflow-guide/gitea-사용가이드.md
Hyungi Ahn 2fac5abbbb docs: Gitea 사용 가이드 추가
- 매일 사용하는 Git 워크플로우 정리
- 커밋 메시지 규칙 및 예시
- HTTPS/SSH 접속 방법 설명
- 프로젝트 구조 템플릿 제공
- 자주 발생하는 문제 해결방법
- /Users/hyungiahn/Documents/code 표준 경로 설정
2025-07-15 07:17:48 +09:00

10 KiB

Gitea 작성 가이드

📋 매일 사용하는 Git 워크플로우

작업 시작 전에 항상!

git pull origin main

다른 기기에서 작업했거나 웹에서 수정한 내용을 받아옵니다.

작업 완료 후에 항상!

git add .
git commit -m "적절한 커밋 메시지"
git push origin main

변경사항을 저장하고 Gitea에 업로드합니다.

📝 커밋 메시지 작성 규칙

Conventional Commits 스타일 (영어)

feat: 새로운 기능 추가
fix: 버그 수정  
docs: 문서 변경
style: 코드 포맷팅 (기능 변경 없음)
refactor: 코드 리팩토링
test: 테스트 추가/수정
chore: 빌드나 설정 변경

실제 사용 예시

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/

새 프로젝트 시작시

# 항상 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 작성 템플릿

# 프로젝트 이름

## 📖 이 프로젝트는 무엇인가요?
프로젝트에 대한 간단한 설명을 여기에 적어주세요.

## 🚀 어떻게 설치하고 실행하나요?
```bash
# 필요한 라이브러리 설치
npm install
# 또는
pip install -r requirements.txt

# 프로그램 실행
npm start
# 또는  
python src/main.py

💡 주요 기능들

  • 기능 1: 어떤 일을 하는지 설명
  • 기능 2: 어떤 일을 하는지 설명
  • 기능 3: 어떤 일을 하는지 설명

🔧 사용 방법

# 코드 사용 예시를 여기에
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 키 설정하기 (비밀번호 없이 사용하려면)

# 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

🔄 브랜치 사용하기 (고급 기능, 선택사항)

새로운 기능을 개발할 때

# 새 브랜치 만들기
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 명령어들

현재 상태 확인하기

git status                 # 지금 어떤 파일이 변경되었는지 보기
git log --oneline -10     # 최근 10개 커밋 간단히 보기
git diff                  # 정확히 어떤 부분이 바뀌었는지 보기

실수했을 때 되돌리기

git reset HEAD~1          # 마지막 커밋 취소 (파일 변경사항은 그대로)
git checkout -- 파일명    # 특정 파일의 변경사항 취소
git clean -fd             # 추적되지 않는 새 파일들 삭제

브랜치 관리하기

git branch               # 현재 있는 브랜치들 보기
git branch -d 브랜치명    # 브랜치 삭제하기
git checkout 브랜치명     # 다른 브랜치로 이동하기

원격 저장소 관리하기

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)

# 웹 브라우저에서
http://git.hyungi.net

# Git 명령어에서  
git clone http://git.hyungi.net/사용자명/저장소명.git

SSH 접속 (Git)

# 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 설정 파일 (선택사항)

# ~/.ssh/config 파일 생성
nano ~/.ssh/config

# 아래 내용 추가:
Host gitssh.hyungi.net
    HostName gitssh.hyungi.net
    User git
    IdentityFile ~/.ssh/id_ed25519

🆘 자주 발생하는 문제와 해결방법

1. "Your branch is behind" 오류가 날 때

# 원인: 다른 곳에서 변경한 내용이 있음
# 해결: 먼저 pull 받고 나서 push
git pull origin main
git push origin main

2. "conflict" (충돌) 오류가 날 때

# 파일을 열어서 충돌 부분을 직접 수정
# <<<<<<< HEAD 와 >>>>>>> 사이의 내용을 정리
# 수정 후 다시 커밋
git add .
git commit -m "fix: 충돌 해결"
git push origin main

3. 잘못 커밋했을 때

# 커밋 메시지만 바꾸고 싶을 때
git commit --amend -m "올바른 커밋 메시지"

# 마지막 커밋을 완전히 취소하고 싶을 때
git reset HEAD~1

📌 이 가이드를 즐겨찾기해두고 모를 때마다 참고하세요!

💡 : 처음에는 복잡해 보이지만, 매일 pull → add → commit → push 만 반복하면 금세 익숙해집니다!

📅 마지막 업데이트: 2024-07-15