일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git revase
- mybatis
- 이딴게개발자
- oracle
- useContext
- HTML
- Variabla
- 부적합한열
- Thymeleaf
- CRUD
- springboot
- JavaScript
- BCryptPasswordEncoder
- SQL
- git
- passwordencoder
- Spring
- content-box
- 배열
- ResultType
- localStorage
- git amend
- git reset
- WHEREIN
- Java
- MVC
- assertequals
- PathVariable
- react
- JDBC
- Today
- Total
개발새발
[Git] 최종 commit을 변경하는 git amend 본문
~ 상황 가정 ~
나는 분명 작업 공간에 test1.txt 파일을 만들었는데,
커밋 메시지를 "test3.txt 파일 생성"이라고 실수로 잘못 작성해버렸다..!
이전 커밋 기록이 존재한다면 git reset --soft가 먹히겠지만,
방금 전의 커밋이 작업 공간 내의 처음이자 마지막 커밋이라면 어떻게 할 것인가?
??? : .git 폴더를 삭제하고 다시 git init 합니다
1. git amend
최종 커밋을 변경해주는 명령어
정확히 말하자면 git commit --amend -m "변경내용" 으로 작성하는 것이 맞다.
2. 다른 방법들
Master branch에 순서대로 v1 / v2 / v3 / v3-1 / v3-2 라는 커밋이 기록되었다고 가정하자.
막상 커밋을 하고 보니, v3-2라는 메시지가 마음에 들지 않는다... 어떻게 할 것인가?
방법 1)
git commit --amend -m "변경메시지"
v3-2가 브랜치의 Header(마지막 커밋)이기 때문에 적용 가능
방법 2)
git reset --soft v3-1 해시코드
git commit -m "변경메시지"
v3-2 이전에 커밋이 존재하기 때문에 적용 가능
방법 3)
git rebase i HEAD~3
I (INSERT실행)
변경메시지 입력
esc
:wq
아싸리 가장 최근 커밋(v3-2)를 기점으로 바로 위 3개 커밋(v3-2, v3-1, v3)까지 합쳐버린다 (위 2개 방법과는 다른 결과)
vi에디터에서 변경 메시지를 작성할 수 있다는 것이 특징
상황에 따라, 입맛따라 편하고 적당한거 골라서 잘 쓰는게 최고인 것같다.
정 어려우면 진짜 .git 삭제하고 git init 이 정답이 될지도 (단, 처음이자 마지막 커밋을 수정한다는 가정 하에)
'Git & GitHub' 카테고리의 다른 글
[Git] commit 무효화하기 (git reset) (0) | 2023.12.25 |
---|---|
[Git] 변경 사항 확인 (log & diff) (0) | 2023.12.25 |
[Git] Git의 개념부터 버전 생성까지 (0) | 2023.12.17 |
[GitHub] Octotree (0) | 2023.09.15 |