본문 바로가기
   

[Git] 로컬저장소부터 원격 저장소 github에 필요한 기초 명령어 정리

@공덕배2025. 11. 2. 18:50
728x90
 

[Git] 기초 실습 정리 (로컬저장소)

Github나 Gitlab 같은 원격저장소에 저장하는 것이나 원격저장소 만드는 법을 그 전 글에 업로드하겠다고 했는데 생각해보니 나만의 로컬저장소를 만드는 것부터가 먼저해야할 순서라 이 글부터

seo2730.tistory.com

 

 

[Git] 기초 실습 정리 (원격저장소 Github)

[Git] 기초 실습 정리 (로컬저장소)Github나 Gitlab 같은 원격저장소에 저장하는 것이나 원격저장소 만드는 법을 그 전 글에 업로드하겠다고 했는데 생각해보니 나만의 로컬저장소를 만드는 것부터

seo2730.tistory.com


안녕하세요, 이번에는 저번 글에서 쓰였던 git 명령어들을 상세히 정리해보았습니다.

해당 명령어들은 실제 많이 쓰이는 명령어들이라서 git으로 프로젝트의 SW를 관리할려면 최소한 이 명령어들은 알아야합니다.


1. git init : Git 저장소 시작

핵심 용도: 현재 디렉토리를 Git 로컬 저장소로 초기화. .git 숨김 폴더 생성 → 모든 Git 기능 활성화.

언제 사용하는지?

  • 새 프로젝트 시작할 때 항상 첫 번째
  • 기존 폴더를 Git 관리로 전환
  • 절대 중복 실행 NO (이미 초기화된 곳에서 다시 하면 문제 없지만 불필요)

상세 설명 & 옵션

mkdir my-project && cd my-project
git init

출력 예시:

git init 출력 예시

  • .git 폴더 안에 모든 히스토리, 설정 저장
  • 삭제하면 모든 Git 기록 날아감 → 백업 주의

유용한 옵션:

  • -q 또는 --quiet : 터미널에 출력을 최소화하여 보임
  • --init -b [하고 싶은 브랜치명] : git 초기 브랜치명으로 디폴트 설정인 master가 아닌 [하고 싶은 브랜치명]으로 설정

2. git status – 지금 내 저장소 상태 확인

핵심 용도: 현재 작업 디렉토리의 Git 상태를 한눈에 보여줌. Staging AreaWorking Directory의 차이를 파악.

언제 사용하는지?

  • 파일 추가/수정 직후
  • git addcommit 전에 반드시
  • “뭐가 바뀌었지? 커밋할 게 있나?” 할 때

상세 설명 & 옵션

git status

출력 예시:

git status 출력 예시

아래는 git status 사용 시 알아야할 git 내 파일들의 상태 용어

  • Untracked : Git이 모르는 새 파일
  • Modified (Changes not staged) : 이미 Tracked지만 수정된 파일
  • Staged (Changes to be committed) : git add한 파일 → 다음 커밋에 포함
  • Unmodified : Commit 후 수정된 파일들의 상태를 Unmodified로 됨

각 상태에 따른 흐름도는 아래 이미지 참고

git status의 흐름도

Untracked → Unmodified → Modified → Staged → Unmodified 순환 구조

상세 설명

  1. Untracked : touch Readme.md → Git이 모르는 새 파일
  2. Add the file → git add Readme.md → Staged로 이동
  3. Stage the file → git commit → Unmodified로 이동 (안전 저장)
  4. Edit the file → 수정 → Modified으로 이동
  5. Stage the file → 다시 git add → Staged → git commit 반복
  6. Remove the file → git rm Readme.md → Staged → Commit으로 삭제 영구화

유용한 옵션:

  • -s 또는 --short: 한 줄 요약 (스크립트용)
  • git status -s # 출력: ?? app.js M style.css A index.html

3. git add - 변경된 사항들을 git에 추가

핵심 용도: Working Directory의 모든 변경(새 파일, 수정, 삭제)을 Staging Area로 이동. 커밋 준비 단계.

언제 사용하는지?

  • 여러 파일 수정 후 한 번에 커밋할 때
  • 프로젝트 초기 세팅 (수십 개 파일)
  • .gitignore 외 모든 파일 추가

상세 설명 & 옵션

git add --all   # 또는 git add -A
  • --all vs . 차이:
    • git add .: 현재 폴더만 (상위 폴더 변경 무시)
    • git add --all: 저장소 전체 (삭제된 파일도 포함)

특정 파일만:

git add README.md
git add src/*.js   # 와일드카드 가능

4. git commit -m "메시지" – 무엇이 변경되었는지 메세지로 기록

핵심 용도: Staging Area의 변경을 로컬 저장소에 영구 커밋. 버전 관리의 핵심.

언제 사용하는지?

  • 기능 하나 완성할 때마다
  • 오류 발생 전 백업

상세 설명

git commit -m "[feat] 사용자 로그인 기능 추가"
  • -m 없이 → vim 에디터 열림 (초보자 피하기!)

유용한 옵션:

  • -a: git add 생략하고 Tracked 파일만 자동 추가+커밋
  • git commit -a -m "[fix] 오타 수정"
  • --amend: 마지막 커밋 수정 (메시지/파일 추가)
  • git commit --amend -m "새 메시지"

실무 꿀팁
Conventional Commits 지키기 -> 팀원들이 좋아함

feat: 새 기능
fix: 버그 수정
docs: 문서 변경
refactor: 코드 구조 개선

- 예시

git commit -m "[feat]: 튕겨지는 버그 수정
- 자동 로그인 시 튕겨지는 케이스
- 아이템 먹을 시 튕켜지는 케이스
"

5. git log : 지난 커밋 히스토리를 확인

핵심 용도: 커밋 기록 확인. 누가 언제 뭐 했는지 추적.

언제 사용하는지

  • 이전 버전 찾을 때
  • 버그 원인 분석
  • 코드 망가뜨린 범인 찾기 (잡았다 요놈!!!)

상세 설명

git log

출력 예시

유용한 옵션:

  • --oneline: 커밋 기록을 한 줄 요약
  • --graph --all: 브랜치 시각화
  • git log --graph --all --oneline
  • --author="공덕배": 특정인만
  • -p: 변경된 코드 diff 보기
  • -n 5: 최근 5개만

6. git remote add origin URL : 로컬저장소와 Github 연동

핵심 용도: 로컬 저장소에 원격 저장소(Github) 연결. 한 번만 실행.

언제 사용하느지?

  • 첫 푸시 전
  • 새 원격 추가 (backup 용도)

상세 설명 & 옵션

git remote add origin https://github.com/아이디/my-project.git
# 확인: git remote -v

유용한 옵션:

  • set-url: URL 변경
    git remote set-url origin 새URL
  • remove: 연결 해제

실무 꿀팁
SSH 추천 (비밀번호 NO):

git remote set-url origin git@github.com:아이디/my-project.git

키 생성: Github SSH 가이드


7. git push : 로컬 커밋을 Github로 업로드

핵심 용도: 로컬 커밋을 원격 저장소로 업로드. 팀 공유 시작.

언제 사용하는지?

  • 배포 전

상세 설명 & 옵션

git push origin main
# 첫 푸시: git push -u origin main (이후 git push만)

옵션:

  • --force-with-lease: 강제 푸시 (주의! 히스토리 덮어씀)
  • --tags: 태그 푸시

실무 꿀팁
항상 git pull 먼저! → 충돌 방지

git pull --rebase origin main

8. git pull : 팀원 최신 코드 받아와 병합

핵심 용도: 원격 변경을 로컬로 다운로드 + 병합. fetch + merge.

언제 사용하는지?

  • 아침 출근 후
  • 팀원 코드 병합 후

상세 설명 & 옵션

git pull origin main

유요한 옵션:

  • --rebase: 깔끔한 선형 히스토리
  • --no-ff: 강제 merge 커밋

실무 꿀팁
충돌 시:

  1. 충돌 파일 열기 → <<<<<<< HEAD ~ >>>>>>> 삭제
  2. git add <파일>
  3. git rebase --continue

9. git branch feature/login : 새 기능은 새 브랜치에서

핵심 용도: 브랜치 생성. 기능/버그 분리.

언제 사용하는지?

  • 새 기능 구현 시

상세 설명 & 옵션

git branch feature/login
# 생성+이동: git checkout -b feature/login

10. git checkout feature/login : 브랜치 이동으로 컨텍스트 스위치

핵심 용도: 브랜치/커밋 간 이동.

언제 사용하는지

  • 다른 기능 구현 시
  • 이전 버전 테스트

상세 설명 & 옵션

git checkout main
# Git 2.23+: git switch main

옵션:

  • -b: 새 브랜치 생성하며 이동
  • <commit-hash>: 과거로 이동

실무 꿀팁
git checkout - → 이전 브랜치 (Ctrl+Z 느낌)


상황별 전체 워크플로우 정리

# 새 프로젝트
mkdir app && cd app
git init
git add --all
git commit -m "init"
git remote add origin URL
git push -u origin main

# 기능 개발
git checkout -b feature/new
# 코딩...
git add --all
git commit -m "feat: 새 기능"
git push origin feature/new

오늘은 전반적으로 기초적으로 많이 쓰이는 git 명령어들을 정리해보았습니다.

다음부터는 프로젝트 관리할 때 생길 수 있는 문제 상황들을 어떻게 git으로 대처하는지 작성해보도록 하겠습니다.

 

긴 글 읽어주셔서 감사합니다.

728x90
반응형
공덕배
@공덕배 :: 공덕Project

글이 재밌으셨다면 ❤️ 구독도 환영합니다! 🤗

목차