[ 깃 명령어 (Git command) ]
현재 커밋 상황이다. 위에 있는 커밋일수록 최근에 한 커밋이다.
test1부터 2, 3, 4 차례대로 커밋을 해두었다.
test1, test2 커밋을 합쳐서 하나로 만들고
test3, test4 커밋을 합쳐서 하나로 만들어보자.
1 | git rebase -i HEAD~4 | cs |
위 명령어로 rebase를 실행한다.
HEAD~4 는 HEAD 위치로부터 4개 이전까지의 커밋을 사용(?) 하겠다는 의미이다.
실행 결과는 위와 같다.
주석으로 친절하게 Commands에 대한 설명이 적혀있다.
기본적으로는 pick 명령어(이 커밋을 사용하겠다)로 되어있다.
우리가 사용해야 할 건 이중 "squash" 이다.
s, squash <commit> = use commit, but meld into previous commit
squash 명령어 사용방법은 위와 같다.
설명도 친절하게 적혀있다. 대충 해석해보면 "이 커밋을 사용하는데 이전 커밋과 병합할 것이다." 라는 뜻이다.
이전 커밋과 병합하는 명령어이기 때문에 test2, test4에 이를 적용해야 각각 이전 커밋인 test1, test3과 병합된다.
1 2 3 4 | pick 6f64739 test1 s edc4a6c test2 pick 7711711 test3 s fe4ba8a test4 | cs |
따라서 위에서 test2, test4에 적용되는 명령어 pick을 squash로 변경한다.
위와 같이 s 로 적어도되고 squash 로 적어도 된다.
변경하고 저장해주면 된다.
> :wq
> Enter
1 2 3 4 5 6 7 8 | PS C:\Users\withh\Desktop\GITHUB\Tetris\Tetris> git rebase -i HEAD~4 [detached HEAD f62d78a] test1 Date: Fri Dec 28 18:43:26 2018 +0900 1 file changed, 4 insertions(+) [detached HEAD 7820516] test3 Date: Fri Dec 28 18:43:53 2018 +0900 1 file changed, 2 insertions(+) Successfully rebased and updated refs/heads/master. | cs |
커밋 메시지 작성까지 했다면 위와 같이 "Successfully rebased and updated ~~" 라는 문장이 뜬다.
무사히 커밋들이 합쳐졌다.
깃 히스토리로 결과를 확인해보면 위와 같다.
커밋 메시지에 추가로 작성한 --squash end-- 가 적혀있다,
커밋 2개, test3(7711711) + test4(fe4ba8a)가 합쳐져서 새로운 커밋 ID(7820516)로 커밋이 생성된 것을 확인할 수 있다.
[소스트리(Sourcetree)]
이제 소스트리에서도 한 번 해보자.
현재 커밋 상황은 위와 같다.
마찬가지로 테스트용으로 커밋 4개를 만들어놨다.
그래프에서 합치고자 하는 커밋들의 시작 커밋(가장 이전 커밋)이 아닌 시작 커밋의 바로 이전 커밋에서 우클릭을 누른다.
우클릭해서 [커밋ID]의 자식 커밋을 쌍방향 재배치.. 를 클릭하자.
그러면 위와 같은 rebase 창이 뜬다.
합치고자 하는 커밋이 모두 있는 것을 확인할 수 있다.
아까와 같이 squash는 이전 커밋과 합쳐지기 때문에 test2, test4에 squash 를 적용해야 한다.
각 커밋을 클릭한 뒤 "이전 커밋과 합치기" 버튼을 누르면 이전 커밋과 합쳐진다.
각자 합쳐주면 위와 같이된다.
커밋메시지를 수정하고 싶으면 변경하고 싶은 커밋의 Message에 마우스 더블클릭을 한다.
클릭을 하면 위와 같은 화면이 뜬다.
input box에 변경하고자 하는 커밋 메시지를 작성한 다음 확인을 누른다.
확인을 누르면 rebase 결과가 적용된다.
rebase 결과
'GITHUB' 카테고리의 다른 글
[Error][Github] git push Permission denied (publickey). (0) | 2019.04.26 |
---|---|
[GITHUB] Slack 연동 (0) | 2018.12.31 |
[GITHUB] 마스터 브랜치 망쳤을 때 해결방법 (0) | 2018.12.26 |
github ssh 연동 (0) | 2018.12.17 |
[GITHUB] Repository 생성 ~ Git clone 까지 (0) | 2018.11.28 |
댓글