-
git 기능 구현을 다른 브랜치에서 작성했을 때GIT 2022. 1. 25. 09:23
출처 stackoverflow.com 프로젝트 진행하면서 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
출처 https://www.golinuxcloud.com/git-cherry-pick-examples/ 출처 https://www.golinuxcloud.com/git-cherry-pick-examples/ 이런 경우에 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/
git 명령어 : git cherry-pick - 삐멜 소프트웨어 엔지니어
git을 이용해 코드 관리를 하다보면 커밋을 다른 브랜치에 잘못 하거나, 요구사항이 바뀌어 필요 없는 커밋이 생기거나, 코드 의존성(dependency) 때문에 다른 사람의 커밋 중 일부를 가져와야 하는
cselabnotes.com
https://hayeon1549.tistory.com/13
[Github] Cherry-pick으로 다른 브랜치 commit을 원하는 브랜치로 옮기기
문제 내가 작업하는 브랜치에 commit 해야하는데, 실수로 master 브랜치에 커밋을 했다. 두개의 master 브랜치에 있는 commit을 내가 작업하던 브랜치로 가져와야 한다. 해결 방법 backlog.com/git-tutorial
hayeon1549.tistory.com
'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