🛠️ Git 초기 설정 및 저장소 생성
개발 시작 전 사용자 정보를 등록하고 저장소를 준비하는 단계임
| 명령어 | 설명 |
| git config --global user.name "이름" | 사용자 이름 전역 설정 |
| git config --global user.email "이메일" | 사용자 이메일 전역 설정 |
| git config --list | 현재 설정된 모든 Git 정보 확인 |
| git init | 현재 디렉토리를 로컬 Git 저장소로 초기화 |
| git clone <URL> | 원격 저장소의 내용을 로컬로 복제 |
📝 기본 워크플로우 (변경사항 관리)
파일을 수정하고 기록을 남기는 가장 빈번한 작업 과정임
- git status: 현재 작업 디렉토리의 파일 상태(추적 여부 등) 확인
- git add <파일>: 특정 파일을 스테이징 영역(Staging Area)에 추가
- git add .: 변경된 모든 파일을 한 번에 스테이징 영역에 추가
- git commit -m "메시지": 스테이징된 변경사항을 커밋 메시지와 함께 기록
- git commit -am "메시지": add와 commit을 동시에 수행 (단, 이미 추적 중인 파일만 가능)
Tip: 커밋 메시지는 협업의 핵심임. 'Fix: ...', 'Feat: ...' 등의 컨벤션을 활용하는 것을 추천함
🌿 브랜치 관리 (협업 및 기능 분리)
독립적인 작업 환경을 만들고 병합하는 과정임
- git branch: 로컬 브랜치 목록 확인 및 현재 브랜치 표시
- git branch <브랜치명>: 새로운 브랜치 생성
- git checkout <브랜치명>: 해당 브랜치로 전환
- git checkout -b <브랜치명>: 브랜치 생성과 전환을 동시에 수행
- git branch -d <브랜치명>: 병합이 완료된 브랜치 삭제
- git merge <브랜치명>: 현재 브랜치에 다른 브랜치의 변경사항을 병합
🌐 원격 저장소 (Remote)
GitHub 등 외부 저장소와 데이터를 주고받는 단계임
- git remote add origin <URL>: 원격 저장소 주소를 origin이라는 별칭으로 등록
- git remote -v: 연결된 원격 저장소 목록 및 상세 주소 확인
- git push origin <브랜치>: 로컬 커밋 내역을 원격 저장소에 반영
- git push -u origin main: 최초 푸시 시 원격 브랜치와 로컬 브랜치를 연결 (이후 git push만으로 가능)
- git pull origin <브랜치>: 원격 저장소의 변경사항을 가져와 로컬에 즉시 병합
- git fetch: 원격의 변경 내역만 가져오기 (병합은 별도 진행 필요)
🔍 기록 조회 및 변경 확인
과거 기록을 추적하거나 차이점을 비교함
- git log: 전체 커밋 히스토리 조회
- git log --oneline: 커밋 정보를 한 줄씩 간결하게 요약 조회
- git log --graph: 브랜치와 병합 내역을 시각적인 그래프로 표시
- git show <커밋>: 특정 커밋에서 변경된 상세 내용 확인
- git diff: 커밋 전, 파일 간의 구체적인 소스 코드 차이점 비교
⚠️ 취소 및 복구 (Reset & Revert)
잘못된 작업을 되돌려야 할 때 사용함
Reset vs Revert 차이점
| 구분 | 명령어 | 특징 |
| Reset (Soft) | git reset --soft HEAD~1 | 커밋만 취소, 파일 수정 내역은 스테이징 상태로 유지 |
| Reset (Hard) | git reset --hard HEAD~1 | 커밋과 수정 내역 모두 삭제 (복구 어려우니 주의) |
| Revert | git revert <커밋> | 기존 기록은 남겨두고 취소했다는 새로운 커밋 생성 |
- git reset HEAD <파일>: 스테이징된 파일을 다시 워킹 디렉토리로 내림 (Unstage)
- git checkout -- <파일>: 파일의 변경사항을 마지막 커밋 상태로 되돌림
📦 임시 저장 (Stash)
작업 중 갑자기 브랜치를 바꿔야 할 때 변경사항을 잠시 보관함
- git stash: 현재 작업을 임시 저장소에 보관하고 워킹 디렉토리를 깨끗하게 비움
- git stash list: 임시 저장된 목록 확인
- git stash apply: 가장 최근의 stash 내용을 다시 불러옴
- git stash pop: 최근 stash를 불러오면서 목록에서 삭제
- git stash drop: 불필요한 stash 내역 삭제
✨ Bonus: 데일리 자동 업로드 스크립트
1. git-push.sh (데일리 업로드용)
가장 기본적으로 사용하는 자동 업로드 스크립트. 실행 시 오늘 날짜로 커밋 메시지를 자동 생성하여 푸시
#!/bin/bash
# 변경사항 스테이징
git add .
# 오늘 날짜로 커밋 메시지 생성 (예: 2026-02-19)
git commit -m "$(date '+%Y-%m-%d')"
# 원격 저장소로 푸시 (main 브랜치 기준)
git push origin main
2. git-pull.sh (동기화용)
원격 저장소의 최신 내용을 안전하게 가져와 로컬에 반영할 때 사용
#!/bin/bash
# 원격 저장소의 최신 변경사항 가져오기
echo "Fetching from remote..."
git fetch origin
# 현재 브랜치에 병합
echo "Pulling changes..."
git pull origin main
3. pull-force.sh (강제 동기화용)
로컬의 작업 내용이 꼬였거나, 무조건 원격 저장소의 상태와 동일하게 맞추고 싶을 때 사용하는 강력한 스크립트임⚠️
#!/bin/bash
echo "⚠️ 경고: 로컬 변경사항이 영구 삭제됩니다!"
echo "데이터 손실 위험이 있으니 백업 후 진행하세요."
echo "계속하시겠습니까? (y/N): "
read confirm
if [[ $confirm =~ ^[Yy]$ ]]; then
git fetch origin
git reset --hard origin/main
echo "✅ 강제 풀 완료."
else
echo "❌ 취소됨."
fi
'💡 Tech Note' 카테고리의 다른 글
| 소프트웨어 개발 보안 핵심 가이드 (0) | 2026.02.27 |
|---|---|
| [서버 보안] API 키 관리 전략 및 환경변수 설정 (0) | 2026.02.27 |
| [DB/SQL] 자주 쓰는 SQL 명령어 (0) | 2026.02.19 |