본문 바로가기

전체 글

(322)
Git rebase rebase을 배우기 위해서는 base라는 개념을 알고 있어야 하는데요. 쉽게 말하자면 base는 공통의 조상이라고 생각하면 되고 이 말이 이해가 안되신다면 전에 올려놓았던 게시글을 봐주시면 감사하겠습니다. m1 -> m2 rebase는 a -> b -> [c] t1 -> t2 topic으로 rebase를 한다는 것은 main 브렌치의 조상인 c base를 m1의 조상을 t2 버전으로 가르키는 것 입니다. 이렇게 선형적으로 로그를 볼 수 있게 말이죠! a -> b -> [c] -> t1 -> [t2] -> m1 -> m2 우선 디렉토리를 새로 만들어주었고 초기화, 파일 생성, 브렌치 생성을 해주었습니다. 현재 base는 init이 되는 것이고 main 브렌치에 2개의 버전을 추가해줬습니다. 이제 브렌치를..
Git cherry-pick 먼저 초기화를 해주고 두개의 branch을 만들겠습니다. 그리고 이 두개의 branch의 각각의 작업해주고 합칠겁니다. 이때 하나의 파일을 수정하게 되면 충돌과 같은 복잡한 이슈가 발생할 수 있기 때문에 버전을 만들때 마다 파일을 생성하겠습니다. 세미콜론을 써서 한번에 명령을 실행하겠습니다. touch init.txt; git add init.txt; git commit -m "init" 그다음 branch을 만들어주겠습니다. git branch topic 두개의 브렌치가 생성된 것을 확인하였습니다. 그리고 현재 있는 main 브렌치에서 새로운 파일을 만들고 add, commit 하겠습니다. 이번에도 똑같이 main 브렌치에서 새로운 파일을 만들고 add, commit 하겠습니다. 이번엔 브렌치를 옮겨 ..
Git cherry-pick & rebase Git을 사용하다 보면 여러가지 topic branch들이 생기고, topic 브렌치의 한 버전을 콕 찝어 merge 하고 싶은 경우가 생길 수 있습니다. 바로 그런것을 가능하게 해주는 것이 cherry-pick 인데요. 특정한 커밋 하나만 픽업해서 다른 커밋과 붙일 수 있는데요. 또 이런 문제가 생길 수 있습니다. 이렇게 병합을 진행하다 보면 작업의 흐름이 병렬적으로 흐르는데요. 이것이 수십개 수백개가 된다면 이 것을 이해하는데 정말 어렵겠죠? 그렇다면 마치 topic 작업을 끝낸후에 이어서 main 작업을 한 것처럼 나타낼 수 있다면 얼마나 좋을까요? 이렇게 말이죠. 이렇게 되면 일렬로 이어지는 작업을 볼 수 있어 이 작업이 어떻게 진행되어있는지 직관적이게 파악할 수 있겠죠? 이런 기능을 해주는 것이..