일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CORS
- wecode
- westagram
- 노드
- 실행 컨텍스트
- 트랜잭션
- on_delete
- Jest
- bcrypt
- docker
- status code
- crud2
- 호이스팅
- django westagram
- 장고초기세팅
- JWT
- 자바스크립트
- node
- async/await
- nodeJS
- typescript
- Django
- 스코프
- 프로미스
- javascript
- manytomanyfield
- pm2
- TypeError: this.boardRepository.createBoard is not a function
- rebase
- OSI7계층
- Today
- Total
될때까지
((실습)) Rebase 및 Rebase 취소하기 본문
Rebase
불필요한 여러개의 커밋 메세지를 하나로 squash할 수 있었던 rebase.
merge를 사용하면 불필요한 merge commit이 생겼는데, rebase를 사용하면 이를 없앨 수 있다.
실습해보기
디렉토리를 생성하고 main.js파일을 작성한 뒤 아무 코드가 작성해서 add, commit 그리고 push까지 진행했다.
메인에서 새 브랜치 feature/test2를 생성하고, 여러개의 커밋을 만들고 sqush한 뒤에 pr을 올렸다.
근데 이게 왠걸? 커밋내역들은 하나로 합쳐졌는데 merge커밋이 생겨있다.
다시 실습해보자. 먼저 내 로컬과 리모트의 위치가 다르다. main으로 이동해서 pull origin main 명령어를 이용해서 둘의 싱크를 맞춰주자
테스트 브랜치를 생성하고 아무 코드나 작성한 뒤 3개의 커밋을 남겼다.
아래 명령어를 사용하고 제일 오래된 커밋메세지만 pick한뒤 나머지 커밋들은 s를 입력해서 squash를 진행하자
git rebase -i main
squash까지 다 진행했으면 pr을 날린다.
git push origin 브랜치이름
깃허브로 들어가서 보면 pr이 올라왔다. 오른쪽의 파란색 pull request버튼을 누르고 pr을 작성한다.
그럼 아래와 같이 창이 뜨는데 여기서!!! merge pull request를 덥썩 누르지말고 옆에 삼각형을 눌러보자
여기서 merge commit 생성하기 말고, 3번째의 rebase and merge를 선택하자. 설명글을 잃어보면 1개의 커밋만 rebase로 진행한다는 걸 알수있다. 버튼을 누르면 아래와 같이 뜨고
merge커밋이 안생긴걸 확인할 수 있다.
git rebase 취소 명령어
git reflog
// 돌리고 싶은 상태 id 복사
git reset --hard id주소넣기
'학습 > 살이되고 뼈가되어라' 카테고리의 다른 글
Jest did not exit one second after the test run has completed. (0) | 2022.09.28 |
---|---|
Error Code: 1241. Operand should contain 1 column(s) (0) | 2022.09.04 |
.gitignore에 나중에 추가한 파일이 추적될 때 (0) | 2022.07.21 |
Python 왓더@property? (0) | 2022.04.29 |
Django render, redirect 차이점이 뭐야? (0) | 2022.04.27 |