💡 Tech Note

[Git] 실무 핵심 명령어 요약 및 자동 업로드 스크립트(.sh) 공유

this.Serena 2026. 2. 19. 03:50

🛠️ 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)

작업 중 갑자기 브랜치를 바꿔야 할 때 변경사항을 잠시 보관함

  1. git stash: 현재 작업을 임시 저장소에 보관하고 워킹 디렉토리를 깨끗하게 비움
  2. git stash list: 임시 저장된 목록 확인
  3. git stash apply: 가장 최근의 stash 내용을 다시 불러옴
  4. git stash pop: 최근 stash를 불러오면서 목록에서 삭제
  5. 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

Git Push.sh
0.00MB

 

2. git-pull.sh (동기화용)

원격 저장소의 최신 내용을 안전하게 가져와 로컬에 반영할 때 사용

#!/bin/bash
# 원격 저장소의 최신 변경사항 가져오기
echo "Fetching from remote..."
git fetch origin

# 현재 브랜치에 병합
echo "Pulling changes..."
git pull origin main

pull.sh
0.00MB

 

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

pull-force.sh
0.00MB