지난 글에서 git stash를 이용해 작업하던 걸 임시저장해서 사용한 걸 보여줬다. 그리고 그 작업을 하면서 일부러 conflict를 발생시켰는데...
이렇게 conflict가 발생해있는 걸 볼 수 있다.
먼저 conflict가 발생한 이유에 대해서 말해봄..! 지난 글에서 보면 (https://devkingdom.tistory.com/2 ) solo-spring-mvc3 에서 브랜치를 따서 작업을 했었는데, 위의 사진을 보면 각 브랜치 사이에 마스터가 있다. 그런데 내가 이제 commit 치고 서버로 push 하고 이제 딱 master에다가 merge를 하려고하니깐 서버가 "이놈은 solo-spring-mvc3에서 브랜치를 따놓고 master에 merge 하려고 하네? " 라고 하면서 conflict를 발생시켜 버린다.
이렇게 발생한 conflict는 제거해줘야하는데... 나는 회사에서 초고수 과장님께 배운 기술을 알려주려고한다 !! 집중~~
이게 인터넷 찾아봐도 잘 없더라구 ... 아 계속 반말로 하는 이유는 어차피 아무도 안보고 나만 볼것같아서이다. 혹시나 보시는 분들은 이해 부탁드려요ㅠㅡㅜ
자 아무튼 내가 알려줄 기술은 바로바로 제목을 보면 알 듯이 cherry-pick 이라는 기술이다. 거창하게 말했지만 별거 없다. 쉽게 말하면 하나의 커밋을 따와서 붙이는 거다.
위의 그림처럼 하나의 커밋을 가져와서 붙이면 된다. 쉽지?
자 그럼 해보자 ! 자 로컬에서 git log를 쳐보자 . 쭉 작업이나오는데 우리는
이 커밋을 붙여 넣어볼거다. b2fd~~~~ 로 되어있는게 commit 명인데 이걸 복사 해놓자 ! 그리고 했으면 master로 이동하자.
자 여기서 기존에 있었던 solo-spring-mvc4 브랜치를 삭제하고 새로 만들어주자 .
이 짓을 왜 해주느냐 ? 위에 있는 그림처럼 solo-spring-mvc4는 원래 solo-spring-mvc3 이랑 이어져서 따진 브랜치인데 이걸 master에서 이어주려고 하는거다! 여기서 git log를 쳐보면 master와 같은 선상에 놓여진걸 볼 수 있다. 그러고 나서 git cherry-pick b2fd~~~~ (아까복사해놓은 커밋) 를 쳐보자.
이렇게 하고나서 git log를 쳐보면 정상적으로 커밋이 올라와있는걸 확인할 수 있다.
그러고나서 서버에 강제로 푸시를 때려버리자. (강제로 날려서 기존에 conflict 난 푸시를 무시해버리자!!)
이렇게 하고 서버로가서 merge 해주면!!!!!
나이스~~~~~~~~~~~~~~~
말이 좀 어려울수도 있다. 그래도 한 10번 읽다보면 이해될거다. 그래도 이해안되면 댓글달아주라. 그럼 오늘도 즐거운 코딩하자
'Develop > Git' 카테고리의 다른 글
[Git] .gitignore 파일 적용하기 (0) | 2020.05.29 |
---|---|
[Git] rebase를 활용한 Commit 두 개 합치기 (0) | 2020.05.21 |
[Git] git init 취소하기 (0) | 2020.04.05 |
[git] One of your dependencies has a security vulnerability (0) | 2019.10.13 |
[git] git stash (0) | 2019.09.12 |
댓글