Skip to content
Newer
Older
100644 202 lines (139 sloc) 7.39 KB
6c2d30b @nvie Structurally replace gitflow by git-flow, as a true git extension.
authored Jan 26, 2010
1 git-flow
2 ========
12c4ab4 @nvie Update README file to mention new available features.
authored Jan 26, 2010
3 A collection of Git extensions to provide high-level repository operations
4fc0bc1 @nvie Use a more friendly URL for the original blog post URL.
authored Feb 24, 2010
4 for Vincent Driessen's [branching model](http://nvie.com/git-model "original
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 21, 2010
5 blog post").
6
7
12c4ab4 @nvie Update README file to mention new available features.
authored Jan 26, 2010
8 Installing git-flow
9 -------------------
149d154 @nvie Add installation instructions for homebrew and MacPorts.
authored Oct 20, 2010
10 If you're on a Mac and use "homebrew":http://github.com/mxcl/homebrew, it's simple:
4f0f539 @nvie Added Rick Osborne's super-easy gitflow installer oneliner to the pro…
authored Jul 10, 2010
11
149d154 @nvie Add installation instructions for homebrew and MacPorts.
authored Oct 20, 2010
12 $ brew install git-flow
13
14 If you're on a Mac and use "MacPorts":http://macports.org/, it's simple:
4f0f539 @nvie Added Rick Osborne's super-easy gitflow installer oneliner to the pro…
authored Jul 10, 2010
15
149d154 @nvie Add installation instructions for homebrew and MacPorts.
authored Oct 20, 2010
16 $ port install git-flow
c213052 @defeated added OSX instructions using curl (because wget isn't available by de…
defeated authored Sep 5, 2010
17
149d154 @nvie Add installation instructions for homebrew and MacPorts.
authored Oct 20, 2010
18 Another easy way to install git-flow is using Rick Osborne's excellent git-flow
19 installer, which can be run using the following command:
20
21 $ wget -q -O - http://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | sudo sh
c213052 @defeated added OSX instructions using curl (because wget isn't available by de…
defeated authored Sep 4, 2010
22
23 For __Windows__ users who wish to use the automated install, it is suggested that you install [Cygwin](http://www.cygwin.com/)
ea738ef @jptoto Added installation instructions for Windows users
jptoto authored Aug 20, 2010
24 first to install tools like sh and wget. Then simply follow the command:
25
149d154 @nvie Add installation instructions for homebrew and MacPorts.
authored Oct 20, 2010
26 C:\> wget -q -O - http://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | sh
ea738ef @jptoto Added installation instructions for Windows users
jptoto authored Aug 19, 2010
27
4f0f539 @nvie Added Rick Osborne's super-easy gitflow installer oneliner to the pro…
authored Jul 10, 2010
28 If you prefer a manual installation, please use the following instructions.
13c9482 @nvie Added instructions to first fetch submodules before installing.
authored Feb 15, 2010
29 After downloading the sources from Github, also fetch the submodules:
30
31 $ git submodule init
32 $ git submodule update
33
34 Then, you can install `git-flow`, using:
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
35
12c4ab4 @nvie Update README file to mention new available features.
authored Jan 26, 2010
36 $ sudo make install
f206ba6 @nvie Update README file to match the 0.1 release status.
authored Jan 26, 2010
37
e0b54c0 @nvie Strip the GIT_EXEC_PATH Makefile parameter. Replaced it by the more U…
authored Mar 19, 2010
38 By default, git-flow will be installed in /usr/local. To change the prefix
39 where git-flow will be installed, simply specify it explicitly, using:
12c4ab4 @nvie Update README file to mention new available features.
authored Jan 26, 2010
40
e0b54c0 @nvie Strip the GIT_EXEC_PATH Makefile parameter. Replaced it by the more U…
authored Mar 19, 2010
41 $ sudo make prefix=/opt/local install
dd720be @nvie Dynamically collect the true git exec path and only if that can not b…
authored Jan 27, 2010
42
43 Or simply point your `PATH` environment variable to your git-flow checkout
44 directory.
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
45
b17b898 @nvie Add installation note on how to install getopt.
authored Aug 25, 2010
46 *Installation note:*
47 git-flow depends on the availability of the command line utility `getopt`,
48 which may not be available in your Unix/Linux environment. Please use your
49 favorite package manager to install `getopt`. For Cygwin, install the
47d1b9d @nvie Made a note on the apt-get installer's package name.
authored Oct 8, 2010
50 `util-linux` package to get `getopt`. If you use `apt-get` as your install
51 manager, the package name is `opt`.
b17b898 @nvie Add installation note on how to install getopt.
authored Aug 25, 2010
52
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
53
ec0b854 @nvie Add link to git-flow-completion project.
authored Jul 22, 2010
54 Integration with your shell
55 ---------------------------
25def71 @nvie Mention the ZSH support for git-flow-completion.
authored Aug 25, 2010
56 For those who use the [Bash](http://www.gnu.org/software/bash/) or
57 [ZSH](http://www.zsh.org) shell, please check out the excellent work on the
ec0b854 @nvie Add link to git-flow-completion project.
authored Jul 22, 2010
58 [git-flow-completion](http://github.com/bobthecow/git-flow-completion) project
59 by [bobthecow](http://github.com/bobthecow). It offers tab-completion for all
60 git-flow subcommands and branch names.
61
25def71 @nvie Mention the ZSH support for git-flow-completion.
authored Aug 25, 2010
62 For Windows users, [msysgit](http://code.google.com/p/msysgit/) is a good
63 starting place for installing git.
ac949bf @jptoto Fixed link to Cygwin and msysgit
jptoto authored Aug 20, 2010
64
ec0b854 @nvie Add link to git-flow-completion project.
authored Jul 22, 2010
65
11965b3 @nvie Added two FAQs.
authored Sep 6, 2010
66 FAQ
67 ---
68 * **Can I still do manual branches and merges when I use git-flow?**
0c92777 @nvie Fix more Markdown syntax.
authored Sep 6, 2010
69 Of course you can. `git-flow` does not forbid you to keep using vanilla Git
11965b3 @nvie Added two FAQs.
authored Sep 6, 2010
70 commands!
71
72 So if you want to merge `master` into `develop` for whatever reason you want
73 to, you can safely do so without breaking `git-flow` compatibility. Do you
74 want to manually merge a feature branch X into another feature branch Y? Not
75 a problem. As long as you do it conciously and realize what this means for
76 finishing those branches later on.
77
f8b34b2 @nvie Add another FAQ.
authored Sep 6, 2010
78 * **Why does git-describe not work for me?**
79 When finishing release and hotfix branches, that branch's HEAD is first
80 merged into `master` and then into `develop`. It is not the resulting new
81 merge commit from `master` that is merged back into `develop`. This means
82 that a linear path from the new `develop` branch to the new `master` commit
83 is not created. Even worse, a linear path is created from the new `develop`
84 branch to the *previous* `master` commit. Although unintended, this is
85 simply an effect of using the current branching rules.
86
87 When using `git-describe` in these cases, you can get very confusing and
88 misleading results, since `git-describe` scans the current commits linear
89 history for the most recent tag it finds, which will always be the *previous*
90 tag.
91
92 I will change this behaviour in the next version of the branching model
93 explicitly and I will include this behavioural change in the first version of
94 the Python rewrite.
95
96 For more references to this problem, see:
97
98 - Issue [#49](http://github.com/nvie/gitflow/issues/49)
99 - These
100 [two](http://groups.google.com/group/gitflow-users/browse\_thread/thread/9920a7df3d1c4908/0bb18a0bf7275ad6#0bb18a0bf7275ad6)
101 [discussions](http://groups.google.com/group/gitflow-users/browse\_thread/thread/19efac724bb6418a)
102 on the [git-flow-users](http://groups.google.com/group/gitflow-users)
103 mailinglist.
104
cb92228 @nvie Add FAQ note for Windows users.
authored Sep 22, 2010
105 * **Can I use it with Windows?**
106 There have been reports of Windows users using `git-flow`.
107 <del>Un</del>fortunately, I have no Windows environment to test it on, but
108 this [issue](http://github.com/nvie/gitflow/issues/issue/25) should be
109 helpful in setting it up.
110
11965b3 @nvie Added two FAQs.
authored Sep 6, 2010
111
f206ba6 @nvie Update README file to match the 0.1 release status.
authored Jan 26, 2010
112 Please help out
113 ---------------
c49c793 @nvie Dotted i's and crossed t's in the README file, for release.
authored Feb 24, 2010
114 This project is still under development. Feedback and suggestions are very
115 welcome and I encourage you to use the [Issues
116 list](http://github.com/nvie/gitflow/issues) on Github to provide that
f206ba6 @nvie Update README file to match the 0.1 release status.
authored Jan 26, 2010
117 feedback.
118
d79a0d4 @nvie Added referral link to the AUTHORS file.
authored Apr 4, 2010
119 Feel free to fork this repo and to commit your additions. For a list of all
120 contributors, please see the [AUTHORS](AUTHORS) file.
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
121
1fd5bcf @nvie Added link to Google group.
authored Jul 15, 2010
122 Any questions, tips, or general discussion can be posted to our Google group:
4d8b379 @nvie Make the links manually.
authored Aug 19, 2010
123 [http://groups.google.com/group/gitflow-users](http://groups.google.com/group/gitflow-users)
1fd5bcf @nvie Added link to Google group.
authored Jul 16, 2010
124
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
125
5d1dbe7 @nvie Added (BSD) licensing terms to the project.
authored Apr 4, 2010
126 License terms
127 -------------
128 git-flow is published under the liberal terms of the BSD License, see the
129 [LICENSE](LICENSE) file. Although the BSD License does not require you to share
130 any modifications you make to the source code, you are very much encouraged and
131 invited to contribute back your modifications to the community, preferably
132 in a Github fork, of course.
133
134
c49c793 @nvie Dotted i's and crossed t's in the README file, for release.
authored Feb 24, 2010
135 Typical usage:
136 --------------
b731e6f @nvie Mention Jeff's great article on the README file.
authored Aug 19, 2010
137 For the best introduction to get started to `git flow`, please read Jeff
138 Kreeftmeijer's blog post:
139
4d8b379 @nvie Make the links manually.
authored Aug 19, 2010
140 [http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/](http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/)
b731e6f @nvie Mention Jeff's great article on the README file.
authored Aug 19, 2010
141
c49c793 @nvie Dotted i's and crossed t's in the README file, for release.
authored Feb 24, 2010
142
143 ### Initialization
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
144
c49c793 @nvie Dotted i's and crossed t's in the README file, for release.
authored Feb 24, 2010
145 To initialize a new repo with the basic branch structure, use:
12c4ab4 @nvie Update README file to mention new available features.
authored Jan 26, 2010
146
c49c793 @nvie Dotted i's and crossed t's in the README file, for release.
authored Feb 24, 2010
147 git flow init
f9ebb07 @nvie Added 'git flow init' to the README file.
authored Feb 22, 2010
148
c49c793 @nvie Dotted i's and crossed t's in the README file, for release.
authored Feb 24, 2010
149 This will then interactively prompt you with some questions on which branches
150 you would like to use as development and production branches, and how you
151 would like your prefixes be named. You may simply press Return on any of
152 those questions to accept the (sane) default suggestions.
153
154
155 ### Creating feature/release/hotfix/support branches
12c4ab4 @nvie Update README file to mention new available features.
authored Jan 26, 2010
156
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 28, 2010
157 * To list/start/finish feature branches, use:
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
158
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 27, 2010
159 git flow feature
160 git flow feature start <name> [<base>]
161 git flow feature finish <name>
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
162
010252a @nvie Added an optional <base> argument to all start subactions.
authored Feb 4, 2010
163 For feature branches, the `<base>` arg must be a commit on `develop`.
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 27, 2010
164
165 * To list/start/finish release branches, use:
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
166
04839ae @nvie Forgot list command for hotfixes.
authored Jan 28, 2010
167 git flow release
010252a @nvie Added an optional <base> argument to all start subactions.
authored Feb 4, 2010
168 git flow release start <release> [<base>]
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 27, 2010
169 git flow release finish <release>
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
170
010252a @nvie Added an optional <base> argument to all start subactions.
authored Feb 4, 2010
171 For release branches, the `<base>` arg must be a commit on `develop`.
172
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 27, 2010
173 * To list/start/finish hotfix branches, use:
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
174
04839ae @nvie Forgot list command for hotfixes.
authored Jan 28, 2010
175 git flow hotfix
010252a @nvie Added an optional <base> argument to all start subactions.
authored Feb 4, 2010
176 git flow hotfix start <release> [<base>]
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 27, 2010
177 git flow hotfix finish <release>
010252a @nvie Added an optional <base> argument to all start subactions.
authored Feb 4, 2010
178
179 For hotfix branches, the `<base>` arg must be a commit on `master`.
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 27, 2010
180
181 * To list/start support branches, use:
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
182
c81e7a2 @nvie Update the README to reflect the new subcommand structure.
authored Jan 27, 2010
183 git flow support
010252a @nvie Added an optional <base> argument to all start subactions.
authored Feb 4, 2010
184 git flow support start <release> <base>
185
186 For support branches, the `<base>` arg must be a commit on `master`.
78c73dc @nvie Add initial project outline and guidelines.
authored Jan 20, 2010
187
b33ea8a @nvie Added a Flattr button to the README file.
authored Aug 24, 2010
188
189 Showing your appreciation
190 =========================
191 A few people already requested it, so now it's here: a Flattr button.
192
193 Of course, the best way to show your appreciation for the original
194 [blog post](http://nvie.com/git-model) or the git-flow tool itself remains
195 contributing to the community. If you'd like to show your appreciation in
196 another way, however, consider Flattr'ing me:
197
198 [![Flattr this][2]][1]
199
200 [1]: http://flattr.com/thing/53771/git-flow
201 [2]: http://api.flattr.com/button/button-static-50x60.png
Something went wrong with that request. Please try again.