blob: 14378aac4cf85146fd8e4d867ce8713caeb95688 [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-------------------
Vincent Driessen13c94822010-02-15 20:09:02 +010015After downloading the sources from Github, also fetch the submodules:
16
17 $ git submodule init
18 $ git submodule update
19
20Then, you can install `git-flow`, using:
Vincent Driessenf206ba62010-01-26 12:44:41 +010021
Vincent Driessen12c4ab42010-01-26 22:11:19 +010022 $ sudo make install
Vincent Driessenf206ba62010-01-26 12:44:41 +010023
Vincent Driessendd720be2010-01-27 00:00:09 +010024By default, this will look for the directory where Git is already installed,
25and install the git-flow extension alongside the other Git subcommands. If git
26is not on the system's `PATH`, it tries `/usr/libexec/git-core`. To explicitly
27override this setting in case you have installed Git in another location, use:
Vincent Driessen12c4ab42010-01-26 22:11:19 +010028
Vincent Driessendd720be2010-01-27 00:00:09 +010029 $ sudo make GIT_EXEC_PATH=/your/custom/path install
Vincent Driessen12c4ab42010-01-26 22:11:19 +010030
Vincent Driessendd720be2010-01-27 00:00:09 +010031You rarely need to override this manually, the default 'make install' should do
32fine.
33
34Or simply point your `PATH` environment variable to your git-flow checkout
35directory.
Vincent Driessenf206ba62010-01-26 12:44:41 +010036
37
Vincent Driessen78c73dc2010-01-21 00:48:44 +010038Please help out
39---------------
Vincent Driessenf206ba62010-01-26 12:44:41 +010040This project is still under development. What is available today is merely its
41foundation. However, it is functional in its current form and should be usable
42under normal use. (Don't try to create multiple release branches next to each
43other and stuff like that, yet.)
44
45Feedback and suggestions are very welcome and I encourage you to use the
46[Issues list](http://github.com/nvie/gitflow/issues) on Github to provide that
47feedback.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010048
49Feel free to fork this repo and to commit your additions.
50
Vincent Driessen78c73dc2010-01-21 00:48:44 +010051
Vincent Driessenf206ba62010-01-26 12:44:41 +010052Example uses:
53-------------
Vincent Driessen78c73dc2010-01-21 00:48:44 +010054
Vincent Driessen12c4ab42010-01-26 22:11:19 +010055* To initialize a new repo with the basic branch structure, instead of using
56 `git init`, use:
57
58 git flow init
59
Vincent Driessenc81e7a22010-01-28 00:33:24 +010060* To list/start/finish feature branches, use:
61
62 git flow feature
63 git flow feature start <name> [<base>]
64 git flow feature finish <name>
65
Vincent Driessen010252a2010-02-04 10:31:29 +010066 For feature branches, the `<base>` arg must be a commit on `develop`.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010067
Vincent Driessenc81e7a22010-01-28 00:33:24 +010068* To list/start/finish release branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +010069
Vincent Driessen04839ae2010-01-28 01:07:20 +010070 git flow release
Vincent Driessen010252a2010-02-04 10:31:29 +010071 git flow release start <release> [<base>]
Vincent Driessenc81e7a22010-01-28 00:33:24 +010072 git flow release finish <release>
Vincent Driessen78c73dc2010-01-21 00:48:44 +010073
Vincent Driessen010252a2010-02-04 10:31:29 +010074 For release branches, the `<base>` arg must be a commit on `develop`.
75
Vincent Driessenc81e7a22010-01-28 00:33:24 +010076* To list/start/finish hotfix branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +010077
Vincent Driessen04839ae2010-01-28 01:07:20 +010078 git flow hotfix
Vincent Driessen010252a2010-02-04 10:31:29 +010079 git flow hotfix start <release> [<base>]
Vincent Driessenc81e7a22010-01-28 00:33:24 +010080 git flow hotfix finish <release>
Vincent Driessen010252a2010-02-04 10:31:29 +010081
82 For hotfix branches, the `<base>` arg must be a commit on `master`.
Vincent Driessenc81e7a22010-01-28 00:33:24 +010083
84* To list/start support branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +010085
Vincent Driessenc81e7a22010-01-28 00:33:24 +010086 git flow support
Vincent Driessen010252a2010-02-04 10:31:29 +010087 git flow support start <release> <base>
88
89 For support branches, the `<base>` arg must be a commit on `master`.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010090