Git을 사용할 때, 한두 번 써본 적은 있지만 매번 헷갈려서 다시 검색하는 명령어들이 있다.
이번 포스팅에서는 자주 헷갈리는 Git 명령어들을 정리해보았다.
그리고 merge 와 rebase , reset 와 revert 중 언제 뭘 쓰면 좋을지도 간단히 비교해봤다.
---
1. git rebase vs git merge
🔹 git merge
- 현재 브랜치에 다른 브랜치의 변경 사항을 **새로운 병합 커밋(Merge Commit)** 으로 통합
- 기록이 남아 히스토리가 복잡해질 수 있음
git checkout feature-branch
git merge main
🔹 git rebase
- 다른 브랜치의 변경 사항을 현재 브랜치의 **기본(Base)으로 삼아 변경사항을 적용**
- 히스토리가 깔끔하게 유지됨
git checkout feature-branch
git rebase main
**❓ 언제 사용해야 할까?**
- 히스토리를 깔끔하게 유지하고 싶다면 **`rebase`**
- 협업 중이고, 기존 커밋 히스토리를 유지해야 한다면 **`merge`**
2. git reset vs git revert
🔹 git reset
- 특정 커밋 이전으로 **되돌리는 명령어**
- `--soft`, `--mixed`, `--hard` 옵션이 있음
git reset --soft HEAD~1 # 마지막 커밋만 되돌리지만 변경 사항은 유지
git reset --hard HEAD~1 # 마지막 커밋 삭제 + 변경 사항도 모두 제거
🔹 git revert
- 특정 커밋을 **취소하는 새로운 커밋을 생성**
- 협업 시 안전하게 사용 가능
git revert HEAD # 가장 최근 커밋을 취소
**❓ 언제 사용해야 할까?**
- **혼자 작업 중이라면** `reset`
- **팀 프로젝트라면** `revert`
3. 이미 `push`한 커밋 수정하기 (`git commit --amend`)
🔹 가장 최근 커밋 메시지 수정
git commit --amend -m "수정된 커밋 메시지"
🔹 최근 커밋에 변경 사항 추가
git add .
git commit --amend --no-edit
🚨 **이미 원격 저장소에 `push`한 경우, 강제 푸시 필요** 🚨
git push --force
**⚠️ 주의:** 협업 중인 브랜치에서는 `--force` 사용 시 다른 사람의 작업이 날아갈 수 있음!
4. `git cherry-pick` – 특정 커밋만 가져오기
(특정 브랜치의 커밋 하나만 현재 브랜치로 가져오고 싶을 때 사용)
git checkout main
git cherry-pick <커밋해시>
5. `git stash` – 작업 중 변경사항 임시 저장
(작업 도중 브랜치를 변경해야 할 때, 변경 사항을 임시 저장할 수 있음)
🔹 변경 사항 저장하기
git stash
🔹 저장된 변경 사항 적용하기
git stash pop
🔹 여러 개의 stash 중 특정 stash 적용하기
git stash list
git stash apply stash@{1}
## 마무리
이 외에도 자주 헷갈리는 Git 명령어들이 많지만, 위에서 정리한 것들이 특히 많이 찾아보게 되는 명령어들이다.
Git을 더 편하게 사용하려면, 주기적으로 연습해보거나 **Alias(단축 명령어)** 를 만들어두는 것도 좋은 방법이다.
궁금한 점이나 추가로 정리했으면 하는 명령어가 있다면 댓글로 남겨주세요! 🚀
'프로그래밍' 카테고리의 다른 글
curl 프록시 옵션 완벽 가이드 (0) | 2024.12.18 |
---|---|
curl 리다이렉트 따라가기 (301 Moved Permanently) (0) | 2024.12.18 |
정규표현식(Regex) 기본문법과 예제 - 이메일, 전화번호 (2) | 2024.12.09 |
Express request query, path, body 예제 (1) | 2024.12.01 |
Mac Node.js 버전 관리 도구: n vs nvm 비교 및 사용법 (1) | 2024.11.27 |