PalmInfrastructure
Palm GitFlow
4 min
gitflow process overview the gitflow process is a branching model that facilitates the management of software development projects it defines a structured approach to branching, merging, and deploying code changes the following document outlines the key aspects of the gitflow process for palm branches master branch the master branch serves as the primary branch in the repository it always contains the latest stable version of the code deployments to production are made exclusively from this branch feature branches feature branches are created from the master branch to develop new features or enhancements developers work on feature branches to isolate changes and collaborate on specific tasks upon completion, feature branches are merged into the master branch via pull requests feature branches can be deployed to the development (dev) and staging environments for testing hotfix branches hotfix branches are derived from the master branch to address critical issues or bugs in the production environment they allow for immediate fixes without disrupting ongoing development activities once a hotfix is validated, it is merged back into both the master branch and the relevant environment branches hotfix branches can also be deployed to the development (dev) and staging environments for testing environment branches environment branches represent different deployment environments such as development (dev), staging, and production they hold the codebase specific to each environment workflow creating feature/hotfix branches feature and hotfix branches are created from the master branch to address specific tasks or issues feature branches facilitate parallel development efforts, while hotfix branches enable rapid bug fixes development and testing developers work on their respective feature or hotfix branches, implementing and testing changes locally once development is complete, changes are pushed to the remote repository and undergo automated testing merging into master feature and hotfix branches are merged into the master branch via pull requests after thorough testing and review pull requests ensure code quality and allow for collaboration among team members deployment feature and hotfix branches can be deployed to the development (dev) and staging environments for testing deployments to production are only initiated manually from the master branch development workflow and deployment process creating a hotfix branch identify the issue recognize a critical issue or bug in the production environment that requires immediate attention create a hotfix branch start by checking out the master branch git checkout master create a new branch specifically for the hotfix git checkout b hotfix/\<issue name> implement the hotfix focus solely on resolving the identified issue within the hotfix branch make necessary code changes and ensure they directly address the problem testing and validation thoroughly test the hotfix locally to ensure it effectively resolves the issue without introducing regressions verify that the hotfix branch functions as intended and mitigates the problem it was created to address deploy to development (dev) push the hotfix branch to the remote repository git push origin hotfix/\<issue name> trigger a manual deployment to the dev environment directly from the hotfix branch deploy to staging upon successful validation in the dev environment, trigger a manual deployment to the staging environment directly from the hotfix branch merge to master after ensuring the hotfix is effective and stable in both the dev and staging environments, create a pull request to merge the hotfix branch into the master branch deploy to production manually deploy the changes from the master branch to the production environment, ensuring that the hotfix is successfully implemented and resolves the issue in the production environment creating a feature branch identify the feature determine a new feature or enhancement to be implemented within the application create a feature branch begin by checking out the master branch git checkout master create a dedicated branch for the new feature git checkout b feature/\<feature name> implement the feature develop the new feature within the feature branch, adhering to project coding standards and guidelines commit changes regularly and push them to the remote repository git push origin feature/\<feature name> testing and validation conduct thorough testing of the feature locally to ensure it functions as expected and aligns with project requirements verify that the feature branch delivers the intended functionality without introducing any unforeseen issues deploy to development (dev) manually deploy the feature branch to the dev environment, initiating the deployment directly from the feature branch deploy to staging following successful testing and approval in the dev environment, manually deploy the changes to the staging environment to validate the feature's functionality and performance merge to master once the feature is thoroughly tested and validated in both the dev and staging environments, create a pull request to merge the feature branch into the master branch deploy to production manually deploy the changes from the master branch to the production environment, ensuring the feature is successfully implemented and available to end users key considerations branches master branch serves as the primary branch in the repository always contains the latest stable version of the code deployments to production are exclusively made from this branch feature branches created from the master branch to develop new features or enhancements developers work on feature branches to isolate changes and collaborate on specific tasks upon completion, feature branches are merged into the master branch via pull requests feature branches can be deployed to the development (dev) and staging environments for testing hotfix branches derived from the master branch to address critical issues or bugs in the production environment allow for immediate fixes without disrupting ongoing development activities once a hotfix is validated, it is merged back into both the master branch and the relevant environment branches hotfix branches can also be deployed to the development (dev) and staging environments for testing environment branches represent different deployment environments such as development (dev), staging, and production hold the codebase specific to each environment workflow creating feature and hotfix branches created from the master branch to address specific tasks or issues development and testing developers work on their respective feature or hotfix branches, implementing and testing changes locally merging into master feature and hotfix branches are merged into the master branch via pull requests after thorough testing and review deployment feature and hotfix branches can be deployed to the development (dev) and staging environments for testing deployments to production are only initiated manually from the master branch deployment process manual deployments from the master branch to the production environment ensure stability and code quality key considerations branch lifecycle regularly update feature and hotfix branches with changes from the master branch to prevent merge conflicts and keep the branches up to date merge requests require code reviews and approvals for all merge requests to maintain code quality and ensure that only verified changes are merged into the master branch environment isolation maintain isolation between development, staging, and production environments to prevent unintended impacts on production systems