핵심만 배우는 git
실시간 모니터링 시스템을 만들며 정복하는 MEVN 책을 읽은 내용 중 일부에 대해 정리한 내용입니다.
git이란?
- 스냅샷 스트림 기반의 분산형 버전 관리 시스템
- 여러 사람이 동시에 작업하는 프로젝트에서 코드의 변경 사항을 추적하고 관리하기에 매우 효과적
- 빠르고 효율적
- 오픈 소스
- 다양한 운영 체제에서 사용 가능
git의 특징
git의 데이터 관리
- 데이터를 파일시스템의 스냅샷의 연속으로 취급
git의 무결성
- 데이터를 저장하기 전에 항상 체크섬을 구하고 그 체크섬으로 데이터를 관리
- 체크섬은 git에서 사용하는 가장 기본적인 데이터 단위이자 기본 철학
git의 체크섬(checksum)
- SHA-1 해시를 사용해 체크섬을 생성
- SHA-1(Secure Hash Algorithm 1): 160비트(20바이트) 해시값을 만드는 암호화 해시 함수
- d670460b4b4aece5915caf5c68d12f560a9fe3e4
- 40자 길이의 16진수 문자열의 특징
- 폴더나 파일을 이름으로 관리하는 것이 아닌 유니크한 아이디를 가지고 데이터 관리
git의 상태관리

- 데이터를 3가지 상태로 두고 관리
- Modified
- 파일을 수정한 상태
- Staged
- 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미
- 스테이지 공간에 올라간 상태
- Commited
- .git 디렉터리에 커밋한 상태
- Modified
자주 사용하는 git 명령어
git init: 로컬 저장소를 생성
git init
git add: 변경된 파일을 스테이징 영역에 추가
git add file1 file2
git commit: 스테이징 영역에 있는 변경 사항을 커밋
git commit -m "커밋 메시지"
git push: 커밋한 변경 사항을 원격 저장소로 전송
git push origin master
git pull: 원격 저장소의 변경 사항을 로컬 저장소로 가져옴
git pull origin master
git branch: 브랜치를 생성
git branch new_branch
git checkout: 브랜치를 전환
git checkout new_branch
git merge: 두 개의 브랜치를 병합
git merge branch_name
git rebase: 브랜치를 재설정
git rebase branch_name
git status: 현재 작업 디렉터리의 상태를 보여주는 명령어
git status
git log: 커밋 히스토리를 조회
git log –-pretty=oneline
git diff: 변경 사항을 비교
git diff branch_name
git stash: 작업 중인 변경 사항을 임시로 저장
git stash
git reset: 변경 사항을 되돌림
git reset HEAD~1
Merge와 Rebase

Merge
- 일반적으로 두 개의 브랜치가 독립적으로 작업한 후, 변경 사항을 통합할 때 사용
- 두 개의 브랜치의 변경 사항이 병합되어 새로운 커밋이 생성
Rebase
- 일반적으로 두 개의 브랜치가 동일한 작업을 수행하고 있지만, 다른 순서로 작업한 후, 변경 사항을 통합할 때 사용
- 두 개의 브랜치의 변경 사항을 하나의 브랜치로 재귀적으로 병합하여 해당 브랜치의 이력을 변경
Merge vs. Rebase
- 히스토리를 보는 관점 중에 하나는 작업한 내용의 기록으로 보는 것
- 히스토리를 프로젝트가 어떻게 진행되었는지 이력으로도 볼 수 있음
- git은 매우 강력한 도구이며, 기능이 많아서 히스토리를 잘 쌓을 수 있지만, 모든 팀과 모든 이가 처한 상황은 모두 다름
git 공식 문서에서의 일반적인 해답
- 로컬 브랜치에서 작업할 때는 히스토리를 정리하기 위해서 Rebase 할 수도 있지만, 리모트 등 어딘가에 Push로 내보낸 커밋에 대해서는 절대 Rebase 하지 말아야 한다
참고
- 실시간 모니터링 시스템을 만들며 정복하는 MEVN
'dev > 기타' 카테고리의 다른 글
| Vitest 메모: 빠르고 쉽게 유닛 테스트 시작하기 (0) | 2025.09.30 |
|---|---|
| [정리] 제대로 배우는 자바스크립트(1) (0) | 2023.11.18 |
| port 오픈 확인 (0) | 2023.07.21 |
| 카프카 스트림즈와 ksqlDB 정복 - 7장 Processor API (0) | 2023.07.04 |
| [정리] 실전 카프카 개발부터 운영까지(5) (0) | 2022.10.20 |