Git

Git-Flow 주요 Branch 기본개념

jaewoo 2022. 9. 29. 18:50

 

GitFlow란?

git을 사용하는 개발환경에서 Branch간의 문제 없이 배포까지 안정적으로 할 수 있도록 Branch를 관리하는 전략이다. 장애가 났을때도 Branch를 만들어 대응하는 Branch도 있음

 

주요 Branch 5가지

1. Main 또는 Master

     실제 운영하고 있는 코드만 가지는 Branch이다.

2. Dev

     main Branch를 기반으로 생성한 Branch이다. Release 또는 Hotfix에서 추가 기능 개발이 이루어지고 Main에 바로 Merge를 하면 꼭 Dev에 Merge를 해줘야 한다. 안 그러면 Dev Branch는 추가 기능을 개발한 코드가 아닌 전 코드에 추가기능을 개발하는 것이기에 코드가 꼬일 수 있다.

3.Feature

     feature를 개발할때, 즉 기능을 개발할때 사용하는 Branch이다. 이 Branch 에 새로 추가 기능을 개발해서 commit 후 Dev Branch 에 Merge하면 된다.

4. Release

    운영에 내보낼 시점이 다가오면 Dev Branch를 베이스로 Release Branch를 생성한다. Release Branch를 만들면 이 Branch를 만든 Dev Branch를 사용하지 않는다. 즉 추가 기능이 필요해질 경우 Release Branch에서 Feature Branch를 만들어 기능을 개발하면 된다.

5. Hotfix

    의도치 않은 장애가 발생한 경우 Dev Branch를 따로 만들어 한다면 시간이 오래걸린다. 그렇기 때문에 Hotfix는 Main 또는 Master Branch에서 바로 Hotfix Branch 를 만들어서 문제를 해결할 정도로만 개발해서 Master에 Merge하면 된다. 그리고 여기서 해결한 부분을 Merge 했다면 Master Branch를 다시 Dev에 다시 Merge를 해줘야 한다.