본문 바로가기
Setting/Git

[Git] Git 버전관리의 시작, Git 명령어(2)

by 써-뇽 2025. 2. 13.

지난 포스팅이
git init, git status, git add, git commit, git log 로
Git 저장소 설정과 상태확인, 스테이징영역 내 파일 추가,
변경사항을 기록 및 이력확인을 위한 가장 기본적인 git 명령어였다고 생각한다.

 

 

[Git] Git 버전관리의 시작, Git 명령어

오늘은 Git 사용을 위한간단한 Git 명령어들을 정리해 볼 예정이다. [Git] Git의 상태와 영역Git은 세 가지 영역으로 나뉘게 된다.1. Working Directory (작업 디렉토리) · 작업 디렉토리는 우리가 실제로

seon-xero.tistory.com

오늘도 지난시간에 이어서 Git 명령어들을 작성해볼까 한다.

  • Git Restore
  • Git Reset
  • Git Branch
  • Git Switch
  • Git Checkout

🔥Git Restore

  • git restore 은 Git에서 작업한 내용을 되돌리는 명령어
  • 스테이징 영역이나 작업디렉토리에서 수정한 파일을 복구할 때 사용

  
git restore <파일명> # <파일명>을 마지막 커밋한 상태로 돌림 [작업디렉토리]
git restore --staged <파일명> # 스테이징 영역에 추가된 파일을 스테이징 영역에서 제거 [스테이징영역]
git restore . # 현재 디렉토리 내 수정된 모든 파일을 되돌림

- (좌) 작업 시작 전 최종 커밋상태
- (우) 최종 커밋상태로부터 문서 수정 및 git add를 통해 스테이징영역 내 파일 추가

1️⃣ git restore --staged : 스테이징 영역에 있는 파일(git add된)을 제거 
- git add 된 내역은 남아있음


  
git restore --staged <파일명>

2️⃣ git restore
- 워킹디렉토리 영역에 있는 수정된 파일을 마지막커밋 상태로 되돌림


  
git restore <파일명>

위의 마지막 커밋상태의 최종파일로 수정된 것을 알 수 있음


🔥Git Reset

  • git reset은 특정 커밋으로 이동하면서 변경 사항을 되돌리는 명령어
  • 옵션별 동작 방식
    1) soft : 커밋만 취소, 변경 사항은 그대로 유지
    2) mixed : 커밋 + 스테이징 영역 초기화 (작업 디렉토리는 유지)
    3) hard : 커밋 + 스테이징 영역 + 작업 디렉토리 변경 사항 모두 삭제

  
git reset --soft HEAD~1 # 마지막 커밋 취소 (변경 사항 유지) * 파일변경 및 git add 는 유지
git reset --mixed HEAD~1 # 마지막 커밋 + 스테이징 영역 초기화 * 파일변경사항은 유지
git reset --hard HEAD~1 # 마지막 커밋 + 스테이징 영역 + 작업 디렉토리 초기화 *파일변경사항삭제`
#HEAD~N : N은 숫자임에따라 커밋취소 위치조정가능

1️⃣ git reset --soft HEAD~1: 커밋내역 취소(파일변경 및  git add유지)

2️⃣ git reset --mixed HEAD~1: 커밋내역 취소 및 스테이징영역 초기화(파일변경 유지)

3️⃣ git reset --hard HEAD~1: 커밋내역 취소 및 스테이징영역, 워킹디렉토리 초기화(파일변경삭제)


🔥Git Branch

  • git branch는 새로운 브랜치를 생성하고 관리하는 명령어
    - 기본브랜치가 master 또는 main으로 설정되어 있다.

  
git branch <브랜치명> # 새로운 브랜치 생성
git branch # 현재 존재하는 브랜치 목록 확인
git branch -d <브랜치명> # 브랜치 삭제


🔥Git Switch

  • git switch는 브랜치를 변경하는 명령어 (checkout의 일부 기능 대체)

  
git switch <브랜치명> # 해당 브랜치로 이동
git switch -c <새로운 브랜치명> # 새로운 브랜치 생성 후 이동


🔥Git Chekout

  • git checkout은 브랜치를 변경하거나 특정 커밋으로 이동하는 명령어
  • 현재는 git switchgit restore로 기능이 분리됨

  
git checkout <브랜치명> # 해당 브랜치로 이동
git checkout -b <새로운 브랜치명> # 새로운 브랜치 생성 후 이동
git checkout <커밋 해시> # 특정 커밋으로 이동