-
git 기능 구현을 다른 브랜치에서 작성했을 때GIT 2022. 1. 25. 09:23
프로젝트 진행하면서 git branch 전략을 적용하여 develop에서 개발을 진행하고 PR이 승인되면 main 으로 코드를 merge 하고 있는데,
개발을 잘못하여 main 브랜치에서 작성하고 commit 하였다는 것을 알게 되었다.
① commit 복사
//단일 커밋 복사 git cherry-pick commit hash //여러 커밋 복사 git cherry-pick commit hash1 commit hash2 //hash1과 hash3 사이의 모든 커밋 복사 (^을 붙이지 않으면 앞의 commit은 포함되지 않음) git cherry-oick commit hash1^...commit hash3
이런 경우에 git cherry-pick을 이용해서 이 문제를 해결할 수 있다. 단일 커밋을 복사할 수도 있고 여러 커밋을 복사할 수도 있다.
git cherry-pick -m l <merge commit hash>
만약 merge commit을 복사하고 싶은 경우라면 위와 같이 명령어를 작성해준다.
② conflicts 발생시
cherry-pick 하려는 commit과 복사하려는 브랜치에서 충돌이 발생하는 경우에는 다음과 같은 선택지가 있다.
- conflict 해결하고 cherry-pick진행 (코드 수정 후 git add <path>, git cherry-pick -continue )
- cherry-pick 중단 ( git cherry-pick -abort : cherry-pick 이전의 상태로 돌아간다.)
③ 잘못 올라간 브랜치의 commit 삭제
git checkout 잘못올린branch git reset commit^ --hard
이제 잘못 올린 branch로 이동하여 옮긴 commit을 삭제해준다. 여기서 ^을 붙이면 해당 commit을 포함하여 삭제하고 붙이지 않으면 해당 commit이전까지 삭제된다.
(참고한 사이트)
https://cselabnotes.com/kr/2021/03/31/56/
https://hayeon1549.tistory.com/13
'GIT' 카테고리의 다른 글
맥에서 Git Error permission denied to <Unknown User> 문제 발생시 (0) 2022.11.15 Github Actions (0) 2022.11.03 Git Commit Convention (0) 2021.12.14 Git Branch Strategy (0) 2021.12.13 Git에 잘못된 파일, 폴더를 올렸을 때 (0) 2021.11.05