GitFlow란? Branch 간의 문제 없이 배포까지 안정적으로 할 수 있도록 Branch를 관리하는 전략이다. GitFlow에서 주로 사용하는 Branch는 5가지가 있다. 1. Main 실제 운영 환경에 존재하는 코드만 갖고 있는 Branch 따라서 안정적인 코드만 갖고 있어야 한다. 2. Dev Main Branch를 베이스로 생성한 Branch 다음 배포에 나갈 Feature 개발건들을 Merge하고 모든 작업 내용을 갖고 있는 Branch 3. Feature 어떤 Feature를 개발할 때 만드는 Branch 커밋을 다 한 경우에는 다시 Dev Branch에 Merge해준다. 4. Release Dev Branch를 베이스로 생성하는 Branch 다음 배포에 나갈 코드를 스냅샷을 뜨는 느낌으로..
특정 브랜치에서 작업을 하다가 다른 브랜치로 checkout해야하는데, 해당 작업을 완료하지 않았거나, 커밋하기엔 애매할 때 어떻게 해야할까? Git에서는 이럴 때 사용할 수 있는 stash가 있다. 우선, 만약에 stash를 사용하지 않고 바로 다른 브랜치로 checkout하면 어떤 일이 발생할까? 이전 브랜치에서 작업했던 내용이 checkout한 브랜치에도 영향을 주게 된다. stash는 working directory의 변경사항을 감춘다. 따라서 checkout을 하더라도 다른 브랜치에 영향을 주지 않는다. git stash 사용방법 git add 후 git stash하면 끝! 다른 브랜치 갔다와서 git stash pop git stash WIP - working in process 임시 작업 숨..
Merge와 Rebase에 관해 헷갈리는 부분이 생겨서 이번 기회에 정리하고자 한다. merge는 현재 브랜치에 내가 원하는 브랜치의 내용을 가져오는 것이다. git checkout feature git merge main feature브랜치로 main브랜치의 커밋내용을 가져온다. rebase는 base를 바꾼다. base란? 자신이 파생된 브랜치(조상 브랜치)와 공통으로 가지고 있는 커밋이 base다. git checkout feature git rebase main feature 브랜치의 base를 main 브랜치의 최신 커밋으로 바꾸겠다. 원격 저장소에서 프로젝트를 가져올 때 git fetch + git merge ⇒ git pull git fetch + git rebase 2가지 방법이 있다. 그..