blob: f76df037829be32bb0ae4f134a7428c7df3c37c1 [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
Vincent Driessenc81e7a22010-01-28 00:33:24 +01008> **IMPORTANT NOTE:**
9> In release 0.2, the order of the arguments has changed to provide a logical
10> subcommand hierarchy.
Vincent Driessenf206ba62010-01-26 12:44:41 +010011
12
Vincent Driessen12c4ab42010-01-26 22:11:19 +010013Installing git-flow
14-------------------
15To install `git-flow` as a real `git` subcommand, run:
Vincent Driessenf206ba62010-01-26 12:44:41 +010016
Vincent Driessen12c4ab42010-01-26 22:11:19 +010017 $ sudo make install
Vincent Driessenf206ba62010-01-26 12:44:41 +010018
Vincent Driessendd720be2010-01-27 00:00:09 +010019By default, this will look for the directory where Git is already installed,
20and install the git-flow extension alongside the other Git subcommands. If git
21is not on the system's `PATH`, it tries `/usr/libexec/git-core`. To explicitly
22override this setting in case you have installed Git in another location, use:
Vincent Driessen12c4ab42010-01-26 22:11:19 +010023
Vincent Driessendd720be2010-01-27 00:00:09 +010024 $ sudo make GIT_EXEC_PATH=/your/custom/path install
Vincent Driessen12c4ab42010-01-26 22:11:19 +010025
Vincent Driessendd720be2010-01-27 00:00:09 +010026You rarely need to override this manually, the default 'make install' should do
27fine.
28
29Or simply point your `PATH` environment variable to your git-flow checkout
30directory.
Vincent Driessenf206ba62010-01-26 12:44:41 +010031
32
Vincent Driessen78c73dc2010-01-21 00:48:44 +010033Please help out
34---------------
Vincent Driessenf206ba62010-01-26 12:44:41 +010035This project is still under development. What is available today is merely its
36foundation. However, it is functional in its current form and should be usable
37under normal use. (Don't try to create multiple release branches next to each
38other and stuff like that, yet.)
39
40Feedback and suggestions are very welcome and I encourage you to use the
41[Issues list](http://github.com/nvie/gitflow/issues) on Github to provide that
42feedback.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010043
44Feel free to fork this repo and to commit your additions.
45
Vincent Driessen78c73dc2010-01-21 00:48:44 +010046
Vincent Driessenf206ba62010-01-26 12:44:41 +010047Example uses:
48-------------
Vincent Driessen78c73dc2010-01-21 00:48:44 +010049
Vincent Driessen12c4ab42010-01-26 22:11:19 +010050* To initialize a new repo with the basic branch structure, instead of using
51 `git init`, use:
52
53 git flow init
54
Vincent Driessenc81e7a22010-01-28 00:33:24 +010055* To list/start/finish feature branches, use:
56
57 git flow feature
58 git flow feature start <name> [<base>]
59 git flow feature finish <name>
60
Vincent Driessen010252a2010-02-04 10:31:29 +010061 For feature branches, the `<base>` arg must be a commit on `develop`.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010062
Vincent Driessenc81e7a22010-01-28 00:33:24 +010063* To list/start/finish release branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +010064
Vincent Driessen04839ae2010-01-28 01:07:20 +010065 git flow release
Vincent Driessen010252a2010-02-04 10:31:29 +010066 git flow release start <release> [<base>]
Vincent Driessenc81e7a22010-01-28 00:33:24 +010067 git flow release finish <release>
Vincent Driessen78c73dc2010-01-21 00:48:44 +010068
Vincent Driessen010252a2010-02-04 10:31:29 +010069 For release branches, the `<base>` arg must be a commit on `develop`.
70
Vincent Driessenc81e7a22010-01-28 00:33:24 +010071* To list/start/finish hotfix branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +010072
Vincent Driessen04839ae2010-01-28 01:07:20 +010073 git flow hotfix
Vincent Driessen010252a2010-02-04 10:31:29 +010074 git flow hotfix start <release> [<base>]
Vincent Driessenc81e7a22010-01-28 00:33:24 +010075 git flow hotfix finish <release>
Vincent Driessen010252a2010-02-04 10:31:29 +010076
77 For hotfix branches, the `<base>` arg must be a commit on `master`.
Vincent Driessenc81e7a22010-01-28 00:33:24 +010078
79* To list/start support branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +010080
Vincent Driessenc81e7a22010-01-28 00:33:24 +010081 git flow support
Vincent Driessen010252a2010-02-04 10:31:29 +010082 git flow support start <release> <base>
83
84 For support branches, the `<base>` arg must be a commit on `master`.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010085