Git-Flow specification

Git-Flow

branch definition

  • Development branch, the branch with the most frequent updates and changes. Under normal circumstances, development is carried out on the Develop branch.

  • Function branches contain the function points developed by each programmer. After Feature development is completed, it is merged into the Develop branch.

  • Release branch, generally speaking, represents the branch where all functions of a version are developed and submitted for testing, and bugs are repaired after testing.

  • Patch branch, this branch exists for fixing major bugs found in the officially launched version.

  • The trunk is mainly a stable version branch, and the officially released versions are pulled from Master.

Naming rules

master, develop, feature/, release/, hotfix/*

Schematic diagram

Version merge rules

  • Release branch release/* -> trunk branch master

  • Hotfix branch hotfix/* -> trunk branch master

  • Feature branch feature/* -> development branch develop

  • Release branch release/* -> development branch develop

  • Hotfix branch hotfix/* -> development branch develop

Detailed description

  1. Starting point of software version: A Requirements are always updated. Just after the last time the product manager requested the software version 0.1, a new version of 0.2 is required. This time there are two functional points in total. Fortunately, we have Git, which makes parallel development possible. Pull the Develop branch and get ready to start working!

  2. The starting point of development: B. Two engineers with two different needs. Master A and Master B each receive a function point to start working on; they pull their own branches from Develop, and there will be no interference if there are separate branches:)

  3. The end point of development: S In less than a week, the two masters have completed their own functions; from the picture, there are two code submissions. The functions developed by the masters individually seem to have no problems at first glance, but our App version is a collection of multi-functions. Will there be no problems if they are combined together? At this time, the masters merged their own branches into Develop and deleted their own working Branches. Compile, run, Success!

  4. The starting point of the pre-release: Release 0.1 node (J). The masters' abilities are indeed unique. There were no problems after integration, and they met the standards for submission to the testing department. Create a new Release 0.1 branch to represent a milestone event.

  5. End point of version release: L I hope people will live long and there will be no more bugs. After painstaking bug fixes by the masters, it finally passed the test of the testing department, was recognized by the product managers, and was ready to be submitted to the App Store for review. Release is merged into the Master branch and marked with Tag 0.2. This is MileStone this time. Of course, you must also remember that Release is merged into Develop. So many bugs before have to be fixed on Develop. After doing this, Release can be deleted.

  6. Firefighter-like HotFix: Q Good things come hard! The App has just been released on the AppStore, and users reported that it crashed! Master A and Master B were ordered to pull the HotFix branch from the Master to fix it. It turns out that the array is out of bounds! Done in minutes. After completion, it will be merged into Master and the version will be updated to Tag 0.3, which means we have fixed major issues. Compile, run, no problem, submit to App Store for review. Oh, one more thing, HotFix also needs to be integrated into Develop, which adds another functional point (bug fixing).

  7. A new cycle begins: U 1-> 6 is our Git Flow during the development process of a version. By the end, nodes S and U have the same content, just like A and B at the beginning. At this time, I saw the product manager walking towards me with version requirement 1.0 again.

Qt 6.6 is officially released. The pop-up window on the lottery page of Gome App insults its founder . Ubuntu 23.10 is officially released. You might as well take advantage of Friday to upgrade! RISC-V: not controlled by any single company or country. Ubuntu 23.10 release episode: ISO image was urgently "recalled" due to containing hate speech. Russian companies produce computers and servers based on Loongson processors. ChromeOS is a Linux distribution using Google Desktop Environment 23-year - old PhD student fixes 22-year-old "ghost bug" in Firefox TiDB 7.4 released: officially compatible with MySQL 8.0 Microsoft launches Windows Terminal Canary version
{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/u/5280168/blog/5589645