Giter Site home page Giter Site logo

shakedbraimok / github-flow Goto Github PK

View Code? Open in Web Editor NEW
12.0 2.0 1.0 120 KB

๐Ÿฆ„ A Git extension that provides commands for working according Git-Flow easily & safely in your repository.

License: GNU General Public License v3.0

Python 100.00%
git gitflow github gitflow-workflow gitflow-methodology

github-flow's Introduction

GitHub-Flow (git flow)

GPL License

git flow is a Git CLI extention. It provides commands for working easily and safely according the Git-Flow.

create feature GitHub-Flow extention is available for anyone who wants to work according the Git flow easily and safely. Through GitHub-Flow, you will be able to assimilate and enforce the Git-Flow in your team without the need for learning or mistakes along the workflow.

Installation

pip install github-flow

Configuration (github-flow.yaml)

The main advantage of this git-flow implementation (additional to the pull-requests before the merge), is the centralized configuration file, all the developers workflow will be the same according this conf file.

This configuration file is required for the CLI extension, please add it to the root directory of your repository before starting work with git flow.

---
branch:
  feature_branch_prefix: feature/
  hotfix_branch_prefix: hotfix/
  release_branch_prefix: release/
  released_branch: main
  next_release_branch: develop

release:
  create_release: true
  release_notes_file: changelog.md #OPTIONAL

pull-request:
  merge_mode: squash
  • create_release - if you want to bump version (according SemVer.org) and create a tag automatically - set true.
  • release_notes_file - Remove this line from the conf file if you don't have a changelog/release-notes file.
  • merge_mode - The merge mode that will be used in your workflow.
    • merge - Merge the commits with the base branch
    • rebase - Rebase the commits onto the base branch
    • squash - Squash the commits into one commit and merge it into the base branch

Usage

Getting Started

  • Add the configuration file to your project
    All you need to do to make your repository supported by Github-Flow is to add github-flow.yaml file. show conf file

Feature

  • Create a Feature
    git flow feature -a create [your_feature_name]
    Behind the scenes:

    • Create a new branch with the Feature prefix ([PREFIX]/[FEATURE_NAME]) from the Next-Release-Branch (the both vars - prefix and next-release-branch are configured in the configuration file). create feature
  • Make Feature ready to deployment
    git flow feature -a ready [your_feature_name]
    Behind the scenes:

    • Create a Pull-Request from this feature branch to the Next-Release branch. ready feature
  • Finish with the feature development
    git flow feature -a done [your_feature_name]
    Behind the scenes:

    • Shows the Pull-Request's checks results.
    • After acception, merges the feature's Pull-Request. done feature

Hotfix

  • Create a Hotfix
    git flow hotfix -a create [your_hotfix_name]
    Behind the scenes:

    • Create a new branch with the Hotfix prefix ([PREFIX]/[HOTFIX_NAME]) from the Released-Branch. create hotfix
  • Make Hotfix ready to deployment
    git flow hotfix -a ready [your_hotfix_name]
    Behind the scenes:

    • Create a Pull-Request from this hotfix branch to the Next-Release branch.
    • Create a Pull-Request from this hotfix branch to the Released branch. ready hotfix
  • Finish with the Hotfix development
    git flow hotfix -a done [your_hotfix_name]
    Behind the scenes:

    • Shows the Pull-Requests' checks results.
    • After acception, merges the Pull-Requests.
    • Bump version (Patch).
    • Create a release tag with the new version. done hotfix

Release

  • Create a new Release
    git flow release -a create [your_release_name]
    Behind the scenes:

    • Create a new branch with the Release prefix ([PREFIX]/[RELEASE_NAME]) from the Next-Release-Branch.
    • Create a Pull-Request to the Released-Branch. create release
  • Publish your Release
    git flow release -a publish [your_release_name]
    Behind the scenes:

    • Shows the Pull-Request checks results.
    • After acception, merges the Pull-Requests.
    • Bump version (Minor).
    • Create a release tag with the new version. publish release

License

This project is under the GPLv3 license.

github-flow's People

Contributors

shakedbraimok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.