로컬 Git 저장소
개요
/home/ubuntu/maknai-frontend에 생성된 Next.js 프로젝트를 로컬 Git 저장소로 초기화하고(커밋), 원격(GitHub/GitLab 등)에 연결해 푸시하는 자동화 스크립트와 수동 명령 모음을 제공합니다. Git이 설치되어 있고(설치 방법 포함), 원격 저장소 URL(또는 GitHub CLI gh 사용 권한)이 필요합니다.
준비: Git 설치 확인
# Git 설치 (없으면)
sudo apt update
sudo apt install -y git
# 버전 확인
git --version
자동화 스크립트 (로컬 초기화 → 커밋 → 원격 설정·푸시)
파일 생성:
sudo nano /usr/local/bin/gitify_maknai_frontend.sh
아래 내용을 붙여넣고 저장한 뒤 실행 권한 부여:
sudo chmod +x /usr/local/bin/gitify_maknai_frontend.sh
스크립트 내용:
#!/usr/bin/env bash
set -euo pipefail
# 변경 가능한 변수
APP_DIR="/home/ubuntu/maknai-frontend"
DEFAULT_BRANCH="main"
if [ ! -d "${APP_DIR}" ]; then
echo "오류: 프로젝트 디렉터리가 존재하지 않습니다: ${APP_DIR}"
exit 1
fi
cd "${APP_DIR}"
# 1. .gitignore 생성(없으면)
if [ ! -f .gitignore ]; then
cat > .gitignore <<'GITIGNORE'
# Node
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# Next.js
.next/
out/
.env.local
.env.development
.env.test
.env.production
# OS
.DS_Store
Thumbs.db
# Editor
.vscode/
.idea/
# Logs
logs/
*.log
# PM2
pm2.pid
GITIGNORE
echo ".gitignore 생성됨"
else
echo ".gitignore 이미 존재함"
fi
# 2. Git 초기화 (이미 초기화되어 있지 않으면)
if [ ! -d .git ]; then
git init -b "${DEFAULT_BRANCH}"
echo "Git 저장소 초기화 (브랜치: ${DEFAULT_BRANCH})"
else
echo "이미 Git 저장소가 초기화되어 있습니다"
fi
# 3. 사용자 정보가 설정되어 있는지 확인 (전역 설정이 없으면 안내)
if ! git config user.name >/dev/null; then
echo "Git 사용자 이름이 설정되어 있지 않습니다. 전역 설정을 권장합니다."
echo "예: git config --global user.name \"Your Name\""
fi
if ! git config user.email >/dev/null; then
echo "Git 사용자 이메일이 설정되어 있지 않습니다. 전역 설정을 권장합니다."
echo "예: git config --global user.email \"you@example.com\""
fi
# 4. 변경 파일 스테이징 및 커밋
git add -A
if git diff --cached --quiet; then
echo "커밋할 변경사항이 없습니다"
else
git commit -m "chore: initial commit for maknai-frontend"
echo "초기 커밋 완료"
fi
# 5. 원격 저장소 설정 (선택)
echo
echo "원격 저장소를 설정하려면 URL을 입력하세요. (예: https://github.com/username/repo.git)"
read -rp "원격 저장소 URL을 입력하거나 비워두면 스크립트 종료: " REMOTE_URL
if [ -z "${REMOTE_URL}" ]; then
echo "원격 저장소 URL이 입력되지 않았습니다. 로컬 저장소만 준비되었습니다."
exit 0
fi
# 기존 origin이 있으면 백업
if git remote get-url origin >/dev/null 2>&1; then
OLD_URL=$(git remote get-url origin)
echo "기존 origin이 존재합니다: ${OLD_URL}"
read -rp "기존 origin을 덮어쓰시겠습니까? (y/N): " yn
case "${yn}" in
[Yy]* ) git remote remove origin; echo "기존 origin 제거";;
* ) echo "원격 설정 취소"; exit 0;;
esac
fi
git remote add origin "${REMOTE_URL}"
echo "origin으로 ${REMOTE_URL} 추가됨"
# 6. 원격에 브랜치 푸시 (업스트림 설정)
git push -u origin "${DEFAULT_BRANCH}"
echo "원격에 푸시 완료: origin/${DEFAULT_BRANCH}"
echo "완료: 로컬 Git 초기화 및 원격 연결이 설정되었습니다."
수동 명령 모음 (원격 생성·연결·푸시)
원격 저장소를 수동으로 만들고 연결하려면:
- 로컬 초기화 및 커밋
cd /home/ubuntu/maknai-frontend
git init -b main
git add -A
git commit -m "chore: initial commit for maknai-frontend"
- GitHub에 원격 저장소 만들기
- 옵션 A: GitHub 웹 UI — GitHub에서 새 리포지토리 생성 후
https://github.com/username/repo.git복사 - 옵션 B: GitHub CLI(설치되어 있을 때)
# gh 설치되어 있고 로그인 되어 있어야 함
gh repo create username/maknai-frontend --public --source=. --remote=origin --push
- 수동으로 원격 추가 및 푸시
git remote add origin https://github.com/username/maknai-frontend.git
git branch -M main
git push -u origin main
권장 확인 사항
- 원격 푸시가 실패하면 인증(SSH 키 또는 HTTPS 자격증명) 문제일 가능성이 큽니다. SSH 사용 권장:
- SSH 키 생성:
ssh-keygen -t ed25519 -C "you@example.com" - 공개키 복사:
cat ~/.ssh/id_ed25519.pub→ GitHub/GitLab 계정에 추가 - 원격 URL을 SSH로 변경:
git remote set-url origin git@github.com:username/repo.git
- SSH 키 생성:
ghCLI 사용 시gh auth login으로 인증 필요
점검 명령
# 로컬 상태
cd /home/ubuntu/maknai-frontend
git status
git log --oneline -n 5
# 원격 확인
git remote -v
git ls-remote --heads origin
원하시면 (1) GitHub에 리포지토리 자동 생성(gh CLI 사용) 스크립트 또는 (2) SSH 키 생성 및 GitHub 연동 안내 스크립트 중 하나를 바로 만들어 드립니다. 원하시는 항목 번호 또는 이름 한 단어로 알려주세요.
