GitFlow by Vincent Driessen

datajcthemax·2023년 6월 13일
0

git/github

목록 보기
15/18

GitFlow is a branching model for Git, created by Vincent Driessen. It's a consistent way to manage your branches and releases in a project, and it provides a robust framework for managing larger projects.

Here's a high-level overview of how it works:

  1. Master Branch: This branch stores the official release history. It's meant to be stable, and any commit on the master branch is a new production release by definition.

  2. Develop Branch: This branch serves as an integration branch for features. It contains the complete history of the project, whereas master contains an abridged version. All of the changes intended to be in the next release are staged in the develop branch.

  3. Feature Branches: These branches are used to develop new features for the upcoming release. They typically branch off from develop and merge back into it. Their names usually start with feature/.

  4. Release Branches: These branches are created when develop (almost) reflects the desired state of the new release. Naming convention is typically release/. During the lifetime of the release branch, any bugs that are found can be fixed in this branch. When it's stable, it's merged into master and tagged with a version number. In addition, it's merged back into develop, which may have progressed since the release was initiated.

  5. Hotfix Branches: These branches are very much like release branches, but they are based on master and are meant to prepare for a new production release, albeit unplanned. They arise from the necessity to act immediately upon an undesired status of a live production version. When finished, the hotfix needs to be merged back into master, but also into develop (or the current release branch), in case the bug exists there as well. The essence of a hotfix branch is that work is completed on this branch and it's immediately incorporated into master and develop (or the current release branch).

The GitFlow model provides a structured way to make releases, fix bugs, and add new features, and it's particularly useful for projects with a scheduled release cycle.

It's important to note that this is just a model, and depending on the specific needs and workflow of your project, you might choose to follow it strictly, adapt it, or use a completely different model.

0개의 댓글