-
Git에서 변경사항 확인과 되돌리기: git diff, git checkout, git add, git resetCS 공부/Git 2024. 12. 3. 22:30
Git을 사용할 때 변경사항을 확인하고, 스테이징하거나 되돌리는 과정은 기본 중의 기본이다. 하지만 이를 효율적으로 활용하려면 명령어의 역할과 연관성을 잘 이해해야 한다. 이번 글에서는 변경사항 확인 및 되돌리기와 스테이징 및 취소의 두 가지 흐름으로 나누어 명령어들을 정리하려고 한다.
1. 변경사항 확인 및 되돌리기
변경사항을 확인하고, 필요에 따라 되돌리는 작업은 작업 중간에 자주 하게 되는 일이다.
git diff
로 변경사항을 확인하고,git checkout
으로 필요 없는 변경사항을 되돌릴 수 있다.1-1)
git diff
: 변경사항 확인git diff
명령어는 수정된 파일의 변경 내용을 확인할 때 사용한다. 주로 스테이징되지 않은 변경사항을 확인하는 데 유용하다.git diff
스테이징된 파일의 변경사항을 보고 싶다면, --cached 옵션을 추가해서 확인할 수 있다.
git diff --cached
1-2) git checkout: 변경사항 되돌리기
변경사항을 되돌리고 싶다면 git checkout 명령어를 사용할 수 있다. 수정 사항을 되돌려 작업 디렉토리를 마지막 커밋 상태로 복구한다.
• 모든 파일 되돌리기git checkout .
• 특정 파일만 되돌리기
git checkout -- <file>
자리에 되돌리고 싶은 파일명을 입력하면 된다. 이 명령어를 사용할 때 주의할 점은 되돌린 변경사항은 복구할 수 없다는 것이다. 실수로 중요한 변경사항을 날려버리지 않도록 신중하게 사용해야 한다.
2. 스테이징과 스테이징 취소
변경사항을 커밋하기 전, 파일을 스테이징 영역(stage)에 올리고 필요할 때 이를 취소하는 작업은 Git의 기본이다. 이 과정에서는 git add와 git reset 명령어를 사용한다.
2-1) git add: 변경사항 스테이징
Git에서 변경된 파일을 커밋하려면, 먼저 스테이징 영역에 올려야 한다. 이를 위해 git add 명령어를 사용한다.
• 특정 파일을 스테이징
git add <file>
• 모든 파일을 스테이징
git add .
2-2) git reset: 스테이징 취소
스테이징한 파일을 다시 되돌리고 싶다면 git reset 명령어를 사용한다.
• 특정 파일만 스테이징 취소
git reset <file>
• 모든 파일을 스테이징 취소
git reset
번외: 스테이징이란?
Git에서 스테이징(Staging)은 변경된 파일을 커밋(commit)하기 전에 준비하는 과정이다. 스테이징 영역(stage)은 커밋할 파일들을 임시로 저장해 두는 공간이라고 생각하면 된다.
1) 스테이징 영역이 필요한 이유
- 변경 관리: 커밋할 파일과 그렇지 않은 파일을 구분할 수 있다.
- 부분 커밋: 변경사항 중 일부만 선택적으로 커밋할 수 있다.
- 명확한 기록: 커밋 로그를 깔끔하게 유지할 수 있다.
2) 스테이징의 기본 흐름
- 파일을 수정하거나 추가.
- git add 명령어로 스테이징 영역에 올림.
- 스테이징 영역에 있는 파일을 git commit으로 최종 저장.
3) 예시
# 파일 수정 vim example.txt # 변경사항 스테이징 git add example.txt # 커밋 git commit -m "Updated example.txt"
이 과정을 통해 Git은 작업 디렉토리의 변경사항을 커밋할 준비를 하게 된다.
요약
Git 명령어를 변경사항 확인 및 되돌리기와 스테이징 및 취소로 나눠 정리하면 아래와 같다.
- 변경사항 확인 및 되돌리기
- git diff: 변경사항 확인
- git checkout: 변경사항 되돌리기
- 모든 파일: git checkout .
- 특정 파일: git checkout --
- 스테이징 및 취소
- git add: 스테이징
• 특정 파일: git add
• 모든 파일: git add . - git reset: 스테이징 취소
• 특정 파일: git reset
• 모든 파일: git reset
- git add: 스테이징
Git을 다룰 때 가장 중요한 점은 작업 내용을 수시로 확인하고, 변경사항을 꼼꼼히 관리하는 습관을 들이는 것이다. 이런 기초적인 명령어들을 숙지해두면 더 복잡한 작업에서도 유연하게 대응할 수 있다.