Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 폰트적용하기
- 반복줄이기
- 리액트
- 티스토리꾸미기
- javascript
- click and drag
- 2022
- 타입스크립트
- 누구나 자료구조와 알고리즘
- NonNullable
- 타입좁히기
- TSDoc
- 공통컴포넌트
- JS console
- typescript
- reactjs
- react
- Chart.js
- React Native
- React.js
- CSS
- 커스텀
- returnType
- 레이아웃쪼개기
- utilty type
- 성능최적화
- const 단언문
- vue.js
- 제네릭
- 개발콘텐츠
Archives
- Today
- Total
몽땅뚝딱 개발자
[git] 히스토리 단장하기 본문
Git으로 일하다 보면 어떤 이유로든 로컬 커밋 히스토리를 수정해야 할 때가 있다.
1) 커밋의 순서 변경
2) 커밋한 파일 변경
3) 여러개의 커밋을 하나로 합치기
4) 하나의 커밋을 여러개로 분리하기
5) 커밋 전체 삭제
이 모든 것은 다른 사람과 코드를 공유하기 전에 이뤄져야 한다.
◽️ 마지막 커밋을 수정하기
1) 커밋 메시지를 수정하기
자동으로 텍스트 펀집기를 실행시켜 마지막 커밋 메시지를 열어준다.
$ git commit --amend
2) 나중에 수정한 파일을 마지막 커밋안에 밀어넣기
// 1. add하여 Staging Area에 넣은 뒤
$ git add
// 2. 아래 명령어로 커밋하면 커밋 자체가 수정되며 추가로 수정사항을 밀어넣을 수 있다.
$ git commit --amend
// 만약 커밋 메시지를 수정할 필요가 없다면 아래 명령어를 실행한다.
// 편집기가 실행되지 않는다.
$ git commit --amend --no-edit
이때 SHA-1 값이 바뀌기 때문에 과거의 커밋을 변경할 때 주의해야 한다.
rebase와 같이 이미 Push한 커밋은 수정하면 안 된다.
◽️ 커밋 메시지를 여러 개 수정하기
최근 커밋이 아니라 예전 커밋을 수정하려면 다른 도구가 필요하다. 히스토리를 수정하기 위해 만들어진 도구는 없지만 rebase 명령을 이용하여 수정할 수 있다. 현재 작업하는 브랜치에서 각 커밋을 하나하나 수정하는 것이 아니라 어느 시점부터 HEAD까지의 커밋을 한 번에 Rebase 한다.
◽️ 커밋 하나로 합치기
1. 로그는 이렇게 쌓여있다.
2. git log로 commit id를 확인하고 아래 명령어를 입력한다.
// commit을 하기 전의 id이다.
$ git rebase -i 7d3583f7cb4fa83df489912fa5bdbbb7
3. 아래와 같이 squash 옵션으로 수정한다.
4. Esc > :wq > 엔터를 눌러 변경내용을 저장한다.
여기서 커밋 메세지를 변경할 수 있다.
5. 끝!
출처 및 참고
프로 Git, Scott Chacon, 2014
'Development > Git' 카테고리의 다른 글
[git] reset (0) | 2023.05.21 |
---|---|
[git] HEAD, Index, 워킹 디렉토리의 의미와 예제 (0) | 2023.05.21 |
[git] 개념, 용어 정리 (추가 중) (0) | 2023.04.29 |
[git] Stashing과 Cleaning (0) | 2023.04.29 |
[git] 커밋 가이드라인 (0) | 2023.04.13 |
Comments