blob: 70a8b1bd53414a77d5d42f6260f8136174912a03 [file] [log] [blame]
Vincent Driessen6c2d30b2010-01-26 22:18:36 +01001git-flow
2========
Vincent Driessen12c4ab42010-01-26 22:11:19 +01003A collection of Git extensions to provide high-level repository operations
Vincent Driessen78c73dc2010-01-21 00:48:44 +01004for Vincent Driessen's [branching model](http://nvie.com/archives/323 "original
5blog post").
6
Vincent Driessenf206ba62010-01-26 12:44:41 +01007
8Release 0.1
9-----------
Vincent Driessen12c4ab42010-01-26 22:11:19 +010010A quick release of version 0.1 has arrived. The main scripts are functional and
Vincent Driessenf206ba62010-01-26 12:44:41 +010011should be usable under "normal" use.
12
13There have barely been any real-world tests, but I encourage you to start using
14it actively. [Feedback](http://github.com/nvie/gitflow/issues) is also very
15welcome. See the "Please help out" section below, also.
16
17**Make sure to validate the modifications to your repo after running any of the
Vincent Driessen12c4ab42010-01-26 22:11:19 +010018`git-flow` commands, before pushing them permanently.**
Vincent Driessenf206ba62010-01-26 12:44:41 +010019
20
Vincent Driessen12c4ab42010-01-26 22:11:19 +010021Installing git-flow
22-------------------
23To install `git-flow` as a real `git` subcommand, run:
Vincent Driessenf206ba62010-01-26 12:44:41 +010024
Vincent Driessen12c4ab42010-01-26 22:11:19 +010025 $ sudo make install
Vincent Driessenf206ba62010-01-26 12:44:41 +010026
Vincent Driessendd720be2010-01-27 00:00:09 +010027By default, this will look for the directory where Git is already installed,
28and install the git-flow extension alongside the other Git subcommands. If git
29is not on the system's `PATH`, it tries `/usr/libexec/git-core`. To explicitly
30override this setting in case you have installed Git in another location, use:
Vincent Driessen12c4ab42010-01-26 22:11:19 +010031
Vincent Driessendd720be2010-01-27 00:00:09 +010032 $ sudo make GIT_EXEC_PATH=/your/custom/path install
Vincent Driessen12c4ab42010-01-26 22:11:19 +010033
Vincent Driessendd720be2010-01-27 00:00:09 +010034You rarely need to override this manually, the default 'make install' should do
35fine.
36
37Or simply point your `PATH` environment variable to your git-flow checkout
38directory.
Vincent Driessenf206ba62010-01-26 12:44:41 +010039
40
Vincent Driessen78c73dc2010-01-21 00:48:44 +010041Please help out
42---------------
Vincent Driessenf206ba62010-01-26 12:44:41 +010043This project is still under development. What is available today is merely its
44foundation. However, it is functional in its current form and should be usable
45under normal use. (Don't try to create multiple release branches next to each
46other and stuff like that, yet.)
47
48Feedback and suggestions are very welcome and I encourage you to use the
49[Issues list](http://github.com/nvie/gitflow/issues) on Github to provide that
50feedback.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010051
52Feel free to fork this repo and to commit your additions.
53
Vincent Driessen78c73dc2010-01-21 00:48:44 +010054
Vincent Driessenf206ba62010-01-26 12:44:41 +010055Example uses:
56-------------
Vincent Driessen78c73dc2010-01-21 00:48:44 +010057
Vincent Driessen12c4ab42010-01-26 22:11:19 +010058* To initialize a new repo with the basic branch structure, instead of using
59 `git init`, use:
60
61 git flow init
62
Vincent Driessen78c73dc2010-01-21 00:48:44 +010063* To start a new feature branch, use:
64
Vincent Driessen12c4ab42010-01-26 22:11:19 +010065 git flow start feature <name> [<base>]
66 git flow start feature foo-support
Vincent Driessen78c73dc2010-01-21 00:48:44 +010067
68 `base` is `develop` by default.
69
70* To finish this feature and have it merged into `develop`, use:
71
Vincent Driessen12c4ab42010-01-26 22:11:19 +010072 git flow finish feature <name>
73 git flow finish feature foo-support
Vincent Driessen78c73dc2010-01-21 00:48:44 +010074
75* To start a new release branch for 2.0, based on the 1.1 production release, use:
76
Vincent Driessen12c4ab42010-01-26 22:11:19 +010077 git flow start release <release>
78 git flow start release 2.0
Vincent Driessen78c73dc2010-01-21 00:48:44 +010079
80* To finish the release branch (i.e. to make an actual production release), use:
81
Vincent Driessen12c4ab42010-01-26 22:11:19 +010082 git flow finish release <release>
83 git flow finish release 2.0
Vincent Driessen78c73dc2010-01-21 00:48:44 +010084
85* To start a new hotfix branch for 2.1, based on the 2.0 production release, use:
86
Vincent Driessen12c4ab42010-01-26 22:11:19 +010087 git flow start hotfix <release> [<base-release>]
88 git flow start hotfix 2.1 2.0
Vincent Driessen78c73dc2010-01-21 00:48:44 +010089
90* To finish the hotfix branch, use:
91
Vincent Driessen12c4ab42010-01-26 22:11:19 +010092 git flow finish hotfix <release>
93 git flow finish hotfix 2.1
Vincent Driessen78c73dc2010-01-21 00:48:44 +010094