blob: 70d944d9907e2a2f69a9de82b619bc1ffee81c13 [file] [log] [blame]
Vincent Driessen877f5fe2010-12-06 14:54:50 -08001git-flow ![Project status](http://stillmaintained.com/nvie/gitflow.png)
Vincent Driessen6c2d30b2010-01-26 22:18:36 +01002========
Vincent Driessen12c4ab42010-01-26 22:11:19 +01003A collection of Git extensions to provide high-level repository operations
Vincent Driessen4fc0bc12010-02-24 01:43:04 +01004for Vincent Driessen's [branching model](http://nvie.com/git-model "original
Vincent Driessen78c73dc2010-01-21 00:48:44 +01005blog post").
6
Vincent Driessenf206ba62010-01-26 12:44:41 +01007
Vincent Driessen553776f2011-01-31 22:43:06 +01008Getting started
9---------------
10For the best introduction to get started with `git flow`, please read Jeff
11Kreeftmeijer's blog post:
12
13[http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/](http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/)
14
15Or have a look at one of these screen casts:
16
Vincent Driessen766159d2011-11-24 13:02:00 +010017* [How to use a scalable Git branching model called git-flow](http://buildamodule.com/video/change-management-and-version-control-deploying-releases-features-and-fixes-with-git-how-to-use-a-scalable-git-branching-model-called-gitflow) (by Build a Module)
Vincent Driessen553776f2011-01-31 22:43:06 +010018* [A short introduction to git-flow](http://vimeo.com/16018419) (by Mark Derricutt)
19* [On the path with git-flow](http://codesherpas.com/screencasts/on_the_path_gitflow.mov) (by Dave Bock)
20
21
Vincent Driessen12c4ab42010-01-26 22:11:19 +010022Installing git-flow
23-------------------
Vincent Driessen07dacd52011-12-06 22:12:54 +010024See the Wiki for up-to-date [Installation Instructions](https://github.com/nvie/gitflow/wiki/Installation).
Vincent Driessenb17b8982010-08-25 21:25:36 +020025
Vincent Driessenf206ba62010-01-26 12:44:41 +010026
Vincent Driessenec0b8542010-07-22 14:57:16 +020027Integration with your shell
28---------------------------
Vincent Driessen25def712010-08-25 21:25:57 +020029For those who use the [Bash](http://www.gnu.org/software/bash/) or
30[ZSH](http://www.zsh.org) shell, please check out the excellent work on the
Vincent Driessenec0b8542010-07-22 14:57:16 +020031[git-flow-completion](http://github.com/bobthecow/git-flow-completion) project
32by [bobthecow](http://github.com/bobthecow). It offers tab-completion for all
33git-flow subcommands and branch names.
34
Vincent Driessenec0b8542010-07-22 14:57:16 +020035
Vincent Driessen11965b32010-09-06 12:19:20 +020036FAQ
37---
Vincent Driessen61f2c692010-10-31 06:22:36 +010038See the [FAQ](http://github.com/nvie/gitflow/wiki/FAQ) section of the project
39Wiki.
Vincent Driessencb922282010-09-22 20:38:55 +020040
Vincent Driessen11965b32010-09-06 12:19:20 +020041
Vincent Driessen78c73dc2010-01-21 00:48:44 +010042Please help out
43---------------
Vincent Driessenc49c7932010-02-24 01:22:48 +010044This project is still under development. Feedback and suggestions are very
45welcome and I encourage you to use the [Issues
46list](http://github.com/nvie/gitflow/issues) on Github to provide that
Vincent Driessenf206ba62010-01-26 12:44:41 +010047feedback.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010048
Vincent Driessend79a0d42010-04-04 16:11:44 +020049Feel free to fork this repo and to commit your additions. For a list of all
50contributors, please see the [AUTHORS](AUTHORS) file.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010051
Vincent Driessen1fd5bcf2010-07-15 23:21:21 -070052Any questions, tips, or general discussion can be posted to our Google group:
Vincent Driessen4d8b3792010-08-19 20:01:30 +020053[http://groups.google.com/group/gitflow-users](http://groups.google.com/group/gitflow-users)
Vincent Driessen1fd5bcf2010-07-15 23:21:21 -070054
Eric Holmes938ea5f2011-11-29 00:14:30 -080055Contributing
56------------
Vincent Driessen49305ec2011-11-30 22:14:40 +010057Fork the repository. Then, run:
58
59 git clone --recursive git@github.com:<username>/gitflow.git
60 cd gitflow
61 git branch master origin/master
62 git flow init -d
63 git flow feature start <your feature>
64
65Then, do work and commit your changes. **Hint**: ``export PATH=`pwd`:$PATH``
66from within the gitflow directory makes sure you're using the version of
67gitflow you're currently developing.
68
69 git flow feature publish <your feature>
70
71When done, open a pull request to your feature branch.
Vincent Driessen78c73dc2010-01-21 00:48:44 +010072
Vincent Driessen5d1dbe72010-04-04 15:52:55 +020073License terms
74-------------
75git-flow is published under the liberal terms of the BSD License, see the
76[LICENSE](LICENSE) file. Although the BSD License does not require you to share
77any modifications you make to the source code, you are very much encouraged and
78invited to contribute back your modifications to the community, preferably
79in a Github fork, of course.
80
81
Vincent Driessenc49c7932010-02-24 01:22:48 +010082### Initialization
83
84To initialize a new repo with the basic branch structure, use:
Vincent Driessen12c4ab42010-01-26 22:11:19 +010085
Vincent Driessenc49c7932010-02-24 01:22:48 +010086 git flow init
Vincent Driessenf9ebb072010-02-22 07:56:04 +010087
Vincent Driessenc49c7932010-02-24 01:22:48 +010088This will then interactively prompt you with some questions on which branches
89you would like to use as development and production branches, and how you
90would like your prefixes be named. You may simply press Return on any of
91those questions to accept the (sane) default suggestions.
92
93
94### Creating feature/release/hotfix/support branches
Vincent Driessen12c4ab42010-01-26 22:11:19 +010095
Vincent Driessenc81e7a22010-01-28 00:33:24 +010096* To list/start/finish feature branches, use:
97
98 git flow feature
99 git flow feature start <name> [<base>]
100 git flow feature finish <name>
101
Vincent Driessen010252a2010-02-04 10:31:29 +0100102 For feature branches, the `<base>` arg must be a commit on `develop`.
Vincent Driessen78c73dc2010-01-21 00:48:44 +0100103
Vincent Driessenc81e7a22010-01-28 00:33:24 +0100104* To list/start/finish release branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +0100105
Vincent Driessen04839ae2010-01-28 01:07:20 +0100106 git flow release
Vincent Driessen010252a2010-02-04 10:31:29 +0100107 git flow release start <release> [<base>]
Vincent Driessenc81e7a22010-01-28 00:33:24 +0100108 git flow release finish <release>
Vincent Driessen78c73dc2010-01-21 00:48:44 +0100109
Vincent Driessen010252a2010-02-04 10:31:29 +0100110 For release branches, the `<base>` arg must be a commit on `develop`.
111
Vincent Driessenc81e7a22010-01-28 00:33:24 +0100112* To list/start/finish hotfix branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +0100113
Vincent Driessen04839ae2010-01-28 01:07:20 +0100114 git flow hotfix
Vincent Driessen010252a2010-02-04 10:31:29 +0100115 git flow hotfix start <release> [<base>]
Vincent Driessenc81e7a22010-01-28 00:33:24 +0100116 git flow hotfix finish <release>
Vincent Driessen010252a2010-02-04 10:31:29 +0100117
118 For hotfix branches, the `<base>` arg must be a commit on `master`.
Vincent Driessenc81e7a22010-01-28 00:33:24 +0100119
120* To list/start support branches, use:
Vincent Driessen78c73dc2010-01-21 00:48:44 +0100121
Vincent Driessenc81e7a22010-01-28 00:33:24 +0100122 git flow support
Vincent Driessen010252a2010-02-04 10:31:29 +0100123 git flow support start <release> <base>
124
125 For support branches, the `<base>` arg must be a commit on `master`.
Vincent Driessen78c73dc2010-01-21 00:48:44 +0100126
Vincent Driessenb33ea8a2010-08-24 13:58:32 +0200127
128Showing your appreciation
129=========================
130A few people already requested it, so now it's here: a Flattr button.
131
132Of course, the best way to show your appreciation for the original
133[blog post](http://nvie.com/git-model) or the git-flow tool itself remains
134contributing to the community. If you'd like to show your appreciation in
135another way, however, consider Flattr'ing me:
136
137[![Flattr this][2]][1]
138
139[1]: http://flattr.com/thing/53771/git-flow
140[2]: http://api.flattr.com/button/button-static-50x60.png