| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- 신혼 여행
- AWS
- PostgreSQL
- 생성 패턴
- leetcode
- 회고
- github
- 커머스
- 디자인 패턴
- 지표
- 구조 패턴
- docker
- 논문 정리
- 경로 계획 알고리즘
- 청첩장 모임
- 실용주의 프로그래머
- Playwright
- amazon ecs
- AWS 비용 절감
- 14일 공부
- 오블완
- Go-lang
- DevOps
- ssh
- terraform
- Rust
- Til
- 티스토리챌린지
- study
- MAPF
- Today
- Total
밤 늦게까지 여는 카페
git 자주 사용하는 명령어 정리 - commit --amend, reset, stash 본문
안녕하세요. 날씨가 찌는듯이 더웠다가 선선했다가 정말 알 수가 없습니다 ㅋㅋㅋ
이번에는 소프트웨어 개발에서 빼놓을 수 없는 버전 관리 도구인 git에 대해서 정리해보려고 합니다.
많고 많은 기능 중에서 제가 많이 사용하는 기능인 amend, reset, stash에 대해서 다루려고요!
- checkout, commit, push 다음으로 쉽고 활용도가 높은 기본적인 기능들이라고 생각합니다
1. git commit --amend
git commit --amend 명령어는 현재 커밋을 수정할 수 있는 명령어입니다.
커밋을 수정할 수 있다는 것은 커밋 메시지와 코드 변경사항을 수정할 수 있다는 뜻입니다!
그러면 --amend 옵션을 어떤 상황에서 쓰면 좋을지 살펴보겠습니다.
코드를 작성하다 보면 꼭 1줄 혹은 적은 변경사항을 누락하는 경우가 생깁니다.
그래서 아래 이미지와 같이 한 줄 추가하는 commit을 추가해야 할 때가 있어요...

'이것 때문에 커밋을 1개 추가해야 하나? 이전 커밋에 포함되는게 훨씬 자연스러운데...'
싶을 때 amend 옵션을 사용하면 됩니다.
다음과 같이 파일을 변경하고 스테이지에 올린 다음(git add 명령어로 파일을 추가한 이후)에

git commit --amend 명령어를 입력하면 커밋 메시지를 수정하는 창이 출력됩니다.

여기서 커밋을 완료하면 이전 커밋에 변경사항을 추가하는 것이 완료됩니다!

커밋으로 작은 단위의 작업을 마무리 하고 푸시하기 전에 놓친 사소한 변경사항을
git commit --amend 명령어로 정리하면 깔끔하더라고요!
2. git reset
앞서 살펴봤단 git commit --amend 명령어가 현재 커밋의 내용을 수정하는 것이라면
git reset 명령어는 주어진 커밋까지 커밋들을 취소하는 명령어입니다.
- git reset 1234678 # 1234678 이후의 커밋들을 취소
- git reset HEAD~2 # HEAD에서 2개 커밋까지 취소
--mixed, --soft, --hard 옵션이 있고 기본 값은 --mixed 입니다.
- --mixed 옵션을 사용하면 커밋이 취소되고 해당 커밋에 포함된 변경사항들은 스테이지에서 해제됩니다.
- --soft 옵션을 사용하면 커밋은 취소되지만 해당 커밋에 포함된 변경사항들은 스테이지에 남아 있습니다.
- --hard 옵션은 커밋도 취소하고 변경사항도 전부 되돌립니다.
저는 주로 --soft 옵션을 사용해서 커밋 메시지 혹은 변경사항을 정리하곤 했습니다.
다음과 같은 상황에서 git reset --soft HEAD~2 명령어를 실행하여 '두번째 파일 추가' 이후의 커밋을 지웁니다.



그 이후에 커밋들을 정리해줍니다!


3. git stash
git stash는 아직 정리되지 않은 작업들을 임시로 저장할 때 사용되는 명령어입니다.
stash라는 단어가 '숨기다'라는 뜻을 가진 것처럼 변경사항을 잠깐 숨겨두는 것인데요.

예를 들어, 간단한 기능 테스트나 실험을 하다가 급한 요청이 들어와서 개발에 착수해야 하는 상황을 가정해봅시다.
임시로 변경한 코드들을 위해 브랜치를 만들거나 커밋하는 것이 귀찮을 때가 있습니다.
그렇다고 모두 되돌리는 것은 아깝죠...
이럴 때 stash 명령어를 사용하면 간단하게 저장할 수 있습니다.
다음과 같이 애매한 변경사항이 있을 때 stash 명령어를 입력하면

스테이지에 추가되지 않은 변경사항들이 깔끔하게 정리됩니다!
그리고 이 내용들은 git stash list 명령어를 통해 확인할 수 있고

git stash pop, git stash apply 명령어를 통해서 불러올 수 있습니다.
이렇게 정리하고 보니 커밋 메시지를 깔끔하게 만드려고 명령어들을 사용하고 있더라고요...
그러면 조금 더 공부해서 rebase 명령어를 잘 써보는 것도 좋을 것 같은데 하는 생각이 드네요 ㅋㅋㅋ
'유용한 툴 > git' 카테고리의 다른 글
| git 명령어가 너무 어렵다구요? github 데스크탑 추천! (0) | 2022.09.02 |
|---|---|
| github 프로필 생성 가이드 (0) | 2022.08.17 |
| github access 토큰 발행법 (0) | 2022.08.16 |
| git 200% 활용하기 - github (0) | 2022.08.16 |
| git 설치법 + 사용법 (0) | 2022.08.13 |