Git 사용법, IDE에서 바로 쓰는 실전편

learning by Seven Fingers Studio 18분
GitGitHub버전관리브랜치전략개발자도구

git complete guide 2025

Git, 처음 접하면 정말 어렵습니다. 터미널에 명령어 치다가 뭔가 꼬이면 식은땀이 나죠. 저도 처음엔 “그냥 폴더에 날짜별로 백업하면 안 되나?”라고 생각했어요. 근데 팀 프로젝트 한 번 해보니까… 버전 관리 없이는 진짜 안 되더라고요.

오늘은 제가 실무에서 매일 쓰는 Git 명령어와 옵션들을 상황별로 정리해봤습니다.

시작 전 기본 설정

Git을 처음 설치했다면 계정 설정부터 해야 합니다.

# 계정 정보 확인
git config --global user.email
git config --global user.name

# 계정 설정
git config --global user.email "your-email@example.com"
git config --global user.name "yourname"

Case 1: 로컬 프로젝트를 GitHub에 처음 올리기

# 1. Git 초기화
git init

# 2. GitHub 저장소 연결
git remote add origin https://github.com/username/repo.git

# 3. 기본 브랜치를 main으로
git branch -M main

# 4. 커밋
git add .
git commit -m "최초 커밋"

# 5. 푸시 (upstream 설정과 함께)
git push -u origin main

-u 옵션으로 upstream 설정하면 다음부턴 git push만 쳐도 됩니다.

Case 2: 기존 저장소 클론 후 작업

# 1. 저장소 복제
git clone https://github.com/username/repo.git

# 2. 작업 브랜치 생성
git checkout -b feature/signup

# 3. 원격 최신 상태 동기화
git fetch origin
git merge origin/main

# 4. 작업 후 푸시
git add .
git commit -m "회원가입 기능 추가"
git push -u origin feature/signup

Case 3: 브랜치 병합

# 1. main으로 이동
git checkout main

# 2. 최신 상태 가져오기
git pull origin main

# 3. 작업 브랜치 병합
git merge feature/login

# 4. 충돌 해결 후 (있다면)
git add .
git commit -m "Merge feature/login"

# 5. 푸시
git push origin main

# 6. 사용한 브랜치 삭제
git branch -d feature/login
git push origin --delete feature/login

git remote 완전 정복

원격 저장소를 관리하는 명령어입니다. 혼자 개발할 땐 잘 모르지만, 팀 프로젝트하면서 저장소 주소 바꿔야 할 때 꼭 필요해요.

기본 명령어

# 연결된 원격 저장소 목록 보기
git remote

# 상세 정보 (fetch/push URL까지)
git remote -v

git remote add - 원격 저장소 연결

새 프로젝트 시작할 때 GitHub 저장소 연결하는 명령어입니다.

# 기본 사용법
git remote add <> <URL>

# 예시: origin이라는 이름으로 GitHub 연결
git remote add origin https://github.com/username/repo.git

# 여러 원격 저장소 연결도 가능
git remote add upstream https://github.com/original/repo.git

언제 쓰나요?

  • git init으로 새 프로젝트 시작 후 GitHub 연결할 때
  • 오픈소스 fork해서 원본 저장소도 연결할 때 (upstream)

git remote set-url - URL 변경

저장소 주소가 바뀌거나, HTTPS에서 SSH로 바꿀 때 씁니다.

# URL 변경
git remote set-url origin https://github.com/newuser/newrepo.git

# HTTPS → SSH 변경
git remote set-url origin git@github.com:username/repo.git

실무 상황: 회사에서 GitHub Enterprise로 이전하거나, 개인 계정을 회사 계정으로 바꿀 때 자주 써요.

git remote rename - 이름 변경

# origin을 old-origin으로 변경
git remote rename origin old-origin

git remote remove - 연결 해제

# 원격 저장소 연결 삭제
git remote remove origin

# rm으로도 가능
git remote rm upstream

git remote show - 상세 정보 확인

# origin의 모든 정보 보기
git remote show origin

브랜치 추적 상태, fetch/push URL, 로컬-원격 브랜치 매핑까지 다 보여줘서 문제 생겼을 때 디버깅할 때 유용합니다.

git complete guide 2025

git branch 완전 정복

브랜치는 Git의 핵심입니다. 기능 개발, 버그 수정을 독립적으로 할 수 있게 해주죠.

브랜치 확인

# 로컬 브랜치 목록
git branch

# 원격 브랜치까지 전부
git branch -a

# 원격 브랜치만
git branch -r

# 마지막 커밋 정보까지
git branch -v

# 더 자세하게 (upstream 브랜치 정보)
git branch -vv

-vv 옵션은 로컬 브랜치가 어떤 원격 브랜치를 추적하는지 보여줘요. 푸시가 안 될 때 확인하면 좋습니다.

git branch -M - 브랜치 이름 변경 (강제)

# 현재 브랜치 이름을 main으로 변경
git branch -M main

# 특정 브랜치 이름 변경
git branch -M old-name new-name

-m vs -M 차이:

  • -m: 같은 이름의 브랜치가 있으면 실패
  • -M: 강제로 덮어씀 (주의해서 사용)

실무에서 언제? GitHub가 기본 브랜치를 master에서 main으로 바꾸면서, 기존 프로젝트 마이그레이션할 때 많이 씁니다.

git branch -d / -D - 브랜치 삭제

# 머지된 브랜치 삭제
git branch -d feature/login

# 머지 안 됐어도 강제 삭제
git branch -D feature/broken

-d vs -D:

  • -d: 안전 삭제 (머지 안 된 브랜치면 에러)
  • -D: 강제 삭제 (작업 날아가도 상관없을 때)

git branch -u - upstream 설정

# 현재 브랜치의 upstream 설정
git branch -u origin/main

# 특정 브랜치의 upstream 설정
git branch -u origin/develop develop

이거 설정해두면 git push, git pull 할 때 브랜치 이름 안 써도 됩니다.

git branch —merged / —no-merged

# main에 머지된 브랜치들
git branch --merged main

# 아직 머지 안 된 브랜치들
git branch --no-merged main

PR 머지하고 나서 정리할 브랜치 찾을 때 유용해요.

git checkout 완전 정복

checkout은 브랜치 이동, 파일 복구 등 여러 역할을 합니다. 최근엔 switchrestore로 분리됐지만, 아직 checkout이 더 많이 쓰여요.

브랜치 이동

# 기존 브랜치로 이동
git checkout main

# 브랜치 생성하면서 이동
git checkout -b feature/new-login

# 원격 브랜치 기반으로 로컬 브랜치 생성
git checkout -b feature/api origin/feature/api

# 특정 커밋으로 이동 (detached HEAD)
git checkout abc1234

git checkout -b 옵션들

# 기본: 새 브랜치 만들고 이동
git checkout -b new-branch

# 특정 브랜치/커밋 기준으로 생성
git checkout -b hotfix main
git checkout -b test abc1234

# 원격 브랜치 추적하면서 생성
git checkout -b local-branch origin/remote-branch

# 브랜치가 이미 있으면 리셋 (-B)
git checkout -B feature/reset

-b vs -B:

  • -b: 브랜치가 이미 있으면 에러
  • -B: 브랜치가 있으면 현재 위치로 리셋

파일 복구 (변경 취소)

# 특정 파일 변경 취소
git checkout -- index.html

# 모든 변경 취소
git checkout -- .

# 특정 커밋의 파일 가져오기
git checkout abc1234 -- src/App.js

주의: staging된 파일은 안 됩니다. git restore를 쓰거나 먼저 git reset HEAD로 unstage해야 해요.

git switch / git restore (새로운 방식)

Git 2.23부터 checkout이 하던 일을 두 명령어로 분리했습니다.

# 브랜치 이동 (checkout 대신)
git switch main
git switch -c new-branch  # -c = create

# 파일 복구 (checkout -- 대신)
git restore index.html
git restore --staged index.html  # unstage

새 프로젝트면 switch/restore 쓰는 게 더 명확합니다.

자주 쓰는 옵션 정리표

명령어옵션설명
git remote-vURL까지 상세 출력
git remote add<name> <url>원격 저장소 연결
git remote set-url<name> <url>URL 변경
git branch-a모든 브랜치 (원격 포함)
git branch-vvupstream 정보까지
git branch-M이름 변경 (강제)
git branch-d / -D삭제 (안전/강제)
git checkout-b브랜치 생성+이동
git checkout-B브랜치 리셋+이동
git checkout-- <file>파일 변경 취소

브랜치 전략

팀마다 다르지만 대표적인 전략 세 가지가 있어요.

Git-Flow

  • master, develop, feature, release, hotfix 브랜치 사용
  • 버전 관리가 중요한 앱(모바일 등)에 적합

GitHub-Flow

  • main 브랜치 하나만 유지
  • feature 브랜치 → PR → 머지
  • 웹 서비스처럼 자주 배포하는 환경에 적합

Trunk-Based Development

  • 모든 개발자가 main에서 직접 작업
  • CI/CD가 잘 갖춰져야 가능

저는 개인 프로젝트에선 GitHub-Flow, 회사에선 Git-Flow를 씁니다.

Git 명령어 외우려고 하지 마세요. 이 글 북마크해두고 필요할 때 찾아보면 됩니다. 쓰다 보면 자연스럽게 손에 익어요!

← 블로그 목록으로