All Projects → internetguru → omgf

internetguru / omgf

Licence: GPL-3.0 License
Use Git Flow with ease – maintain branches, semantic versioning, releases, and changelog with a single command.

Programming Languages

shell
77523 projects
Makefile
30231 projects
ruby
36898 projects - #4 most used programming language
awk
318 projects

Projects that are alternatives of or similar to omgf

Git Town
Generic, high-level Git workflow support!
Stars: ✭ 1,937 (+4866.67%)
Mutual labels:  productivity, workflow, git-flow
AlfredWorkflows
My workflow creations for Alfred on macOS.
Stars: ✭ 55 (+41.03%)
Mutual labels:  productivity, workflow
Gitflow Avh
AVH Edition of the git extensions to provide high-level repository operations for Vincent Driessen's branching model
Stars: ✭ 4,986 (+12684.62%)
Mutual labels:  workflow, git-flow
Fugitive
Simple command line tool to make git more intuitive, along with useful GitHub addons.
Stars: ✭ 20 (-48.72%)
Mutual labels:  productivity, workflow
Alfred Iconfinder Search
Alfred 3 workflow for Iconfinder instant search
Stars: ✭ 14 (-64.1%)
Mutual labels:  productivity, workflow
Omgf
Use Git Flow with ease – maintain branches, semantic versioning, releases, and changelog with a single command.
Stars: ✭ 37 (-5.13%)
Mutual labels:  productivity, workflow
Codist
A visual studio extension which enhances syntax highlighting, quick info (tooltip), navigation bar, scrollbar, display quality and brings smart tool bar to code editor.
Stars: ✭ 134 (+243.59%)
Mutual labels:  productivity
FritzBoxShell
Some shell scripts for controlling and checking the Fritz!Box/Fritz!Repeater
Stars: ✭ 80 (+105.13%)
Mutual labels:  workflow
tsioc
AOP, Ioc container, Boot framework, unit testing framework , activities workflow framework.
Stars: ✭ 15 (-61.54%)
Mutual labels:  workflow
taskpaper-mode
Emacs TaskPaper Mode
Stars: ✭ 94 (+141.03%)
Mutual labels:  productivity
job
job: free Your RStudio Console
Stars: ✭ 221 (+466.67%)
Mutual labels:  productivity
behaviortracker
Time Tracker ⏲️ - Android application to track the time you spend on some activities during your day.
Stars: ✭ 19 (-51.28%)
Mutual labels:  productivity
git-commands-workflows
🚀 All the git commands and workflows you need to know
Stars: ✭ 50 (+28.21%)
Mutual labels:  workflow
Stamp-Craft
Plugin for adding timestamp to filenames.
Stars: ✭ 28 (-28.21%)
Mutual labels:  workflow
actionsflow-workflow-default
Actionsflow workflow template repository. The best Zapier/IFTTT free alternative for developers to automate your workflows based on Github actions
Stars: ✭ 20 (-48.72%)
Mutual labels:  workflow
mazer-nuxt
Nuxt 2 version of Mazer - Free Bootstrap 5 Admin Dashboard Template and Landing Page
Stars: ✭ 39 (+0%)
Mutual labels:  productivity
Notselwyn
NotSelwyn's over-engineered automatic profile readme
Stars: ✭ 15 (-61.54%)
Mutual labels:  workflow
AnotherPomodoro
Modern and customizable productivity timer app that runs in your browser.
Stars: ✭ 126 (+223.08%)
Mutual labels:  productivity
Mac-OS-Setup-Applications
👾 All I need to setup a new Mac and the applications I use everyday as a Web Developper
Stars: ✭ 96 (+146.15%)
Mutual labels:  workflow
gits
A Fast CLI Git manager for multiple repositories
Stars: ✭ 39 (+0%)
Mutual labels:  productivity

Oh My Git Flow (OMGF)

Build Status

Use Git Flow with ease – maintain branches, semantic versioning, releases, and changelog with a single command.

Oh My Git Flow (aka OMGF) is the simplest way to use Git Flow branching model. When you run OMGF in a git repository, the tool will check the current state of your repo and executes appropriate commands.

OMGF can:

  • initialize new or existing Git repository for Git Flow,
  • automatically create and merge feature, hotfix and release branches,
  • create version tags for releases,
  • maintain a semantic version numbering for releases and VERSION file,
  • push and pull all main branches,
  • give you a pull request link,
  • help you maintain a human-readable CHANGELOG.md file following the Keep a CHANGELOG format,
  • describe current branch and recommend how to proceed with development,
  • maintain multiple hotfix branches,
  • maintain independent production branches.

Table of Contents

Installation

Download the latest release from GitHub. You can install OMGF as a single file (easiest), with compiled distribution package (useful for system-wide install) or from source.

Requirements

Single File Script

  1. Place omgf.sh into your $PATH (e.g. ~/bin),
  2. make the script executable:
    chmod +x omgf.sh
    
  3. optionally rename the file to omgf or gf (unless you wish to setup alias).

Compiled Distribution Package

  1. Extract the archive:
    tar -xvzf omgf-*-linux.tar.gz
    
  2. run install script as root; this will install OMGF system-wide into /usr/local:
    cd omgf-*-linux
    sudo ./install
    

You can also override installation paths using environment variables:

  • BINPATH: where omgf script will be placed; /usr/local/bin by default
  • SHAREPATH: where folder for support files will be placed; /usr/local/share by default
  • USRMANPATH: where manpage will be placed; $SHAREPATH/man/man1 by default.

For example to install OMGF without root permissions, use this:

BINPATH=~/bin SHAREPATH=~/.local/share ./install

Building From Source

You will need the following dependencies:

  • GNU Make
  • rst2man (available in Docutils, e.g. apt-get install python-docutils or pip install docutils)
git clone https://github.com/InternetGuru/omgf.git
cd omgf
./configure && make && compiled/install

You can specify following variables for make command which will affect default parameters of install script:

  • PREFIX: Installation prefix; /usr/local by default
  • BINDIR: Location for omgf script; $PREFIX/bin by default

For example:

PREFIX=/usr make

Setup

It is generally useful to alias omgf to gf in your shell to set default parameters.

Place the following in your shell configuration file (e.g. ~/.bash_aliases, ~/.bashrc or ~/.zshrc):

alias gf="omgf --what-now"

Note: You can find more options in the man page, though the generally useful defaults are:

  • --request: Current branch won't be merged but prepared for a pull request and pushed to origin.
  • --what-now: OMGF will display what you can do on current branch after performing an operation.
  • --verbose: Print commands before executing, especially useful for OMGF development.
  • --yes: OMGF won't ask you to confirm operations (only recommended for advanced users).

Usage

The following examples assume you have omgf alias to gf (see Setup).

Initialize Git Flow in the existing repo:

gf --init
***
* Current branch 'dev' is considered as developing branch.
* - Do some bugfixes...
* - Run 'omgf MYFEATURE' to create new feature.
* - Run 'omgf release' to create release branch.
***

On dev branch, start a feature branch:

gf my-new-feature
* Create branch 'feature-my-new-feature' from branch 'dev'? [YES/No] y
***
* Current branch 'feature-my-new-feature' is considered as feature branch.
* - Develop current feature...
* - Run 'omgf' to merge it into 'dev'.
***

Develop new feature:

echo "new feature code" > myfile
git add myfile
git commit -m "insert myfeature function"

Merge feature branch to dev with entry to Changelog:

gf
* Merge feature 'feature-my-new-feature' into 'dev'? [YES/No] y
***
* Please enter the feature-my-new-feature description for CHANGELOG.md.
*
* Keywords:
*   Added (default), Changed, Deprecated, Removed, Fixed, Security
*
* Commits of 'feature-my-new-feature':
*   f0690b5 insert myfeature function
*
Type "Keyword: Message", empty line to end:
My new feature
f: Project was empty

On dev, start a release branch:

gf release
* Create branch 'release' from current HEAD? [YES/No] y
***
* Current branch 'release' is considered as release branch.
* - Do some bugfixes...
* - Run 'omgf' to merge only into 'dev'.
* - Run 'omgf release' to create stable branch.
***

Make a stable release from release branch:

gf release
* Create stable branch from release? [YES/No] y
***
* Current branch 'dev' is considered as developing branch.
* - Do some bugfixes...
* - Run 'omgf MYFEATURE' to create new feature.
* - Run 'omgf release' to create release branch.
***
Resulting Git history graph
*   Merge branch 'release' into dev  (HEAD -> dev)
|\  
| | *   Merge branch 'release'  (tag: v0.1.0, master)
| | |\  
| | |/  
| |/|   
| * | Update CHANGELOG.md header 
| * | Increment version number 
|/ /  
* |   Merge branch 'feature-my-new-feature' into dev 
|\ \  
| |/  
|/|   
| * Update CHANGELOG.md 
| * insert myfeature function 
|/  
* Initializing 'CHANGELOG.md' file  (tag: v0.0.0)
* Initializing 'VERSION' file 

See the man page for more information and examples.

Alternatives

Maintainers

Contributing

Pull requests are welcome, don't hesitate to contribute.

Donation

If you find this program useful, please send a donation to its developers to support their work. If you use this program at your workplace, please suggest that the company make a donation. We appreciate contributions of any size. Donations enable us to spend more time working on this package, and help cover our infrastructure expenses.

If you’d like to make a donation of any value, please send it to the following PayPal address:

PayPal Donation

Since we aren’t a tax-exempt organization, we can’t offer you a tax deduction. But for all donations over 50 USD, we’d be happy to recognize your contribution on this README file (including manual page) for the next release.

We are also happy to consider making particular improvements or changes, or giving specific technical assistance, in return for a substantial donation over 100 USD. If you would like to discuss this possibility, write us at [email protected].

Another possibility is to pay a software maintenance fee. Again, write us about this at [email protected] to discuss how much you want to pay and how much maintenance we can offer in return.

Thanks for your support!

Donors

License

GNU General Public License version 3, see the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].