[PATCH] Improve description of git-branch -d and -D in man page.
- From
- Jan Hudec <bulb@ucw.cz>
- Date
- Nov 17, 2007, 19:51 UTC
- Message-ID
- <20071117195144.GF5198@efreet.light.src>
- In-Reply-To
- <20071117191256.GD5198@efreet.light.src>
Some users expect that deleting a remote-tracking branch would prevent fetch from creating it again, so be explcit about that it's not the case. Also be a little more explicit about what fully merged means.
Signed-off-by: Jan Hudec <bulb@ucw.cz> ---
On Sat, Nov 17, 2007 at 20:12:56 +0100, Jan Hudec wrote:
Show 23 quoted lines
> On Tue, Nov 13, 2007 at 20:58:20 +0300, osv@javad.com wrote: > > <quote Documentation/git-branch.txt> > > Delete unneeded branch:: > > + > > ------------ > > $ git clone git://git.kernel.org/.../git.git my.git > > $ cd my.git > > $ git branch -d -r origin/todo origin/html origin/man <1> > > $ git branch -D test <2> > > ------------ > > + > > <1> Delete remote-tracking branches "todo", "html", "man" > > </quote> > > > > That's *exactly* what I did! And it *doesn't work*! Well, it does delete > > the branches, but they are automagically re-created on the next fetch, > > so "deleting" them this way is useless. > > Of course it *does* work. It *deletes* the branches. There is not a single > word about stopping fetch getting them! > > Obviously given that the example is slightly contrived, it should really > be mentioned that it does not affect fetch at all.
Would this make the description obvious enough?
-- Jan 'Bulb' Hudec <bulb@ucw.cz> Documentation/git-branch.txt | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index 5ce905d..f87b696 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -45,17 +45,22 @@ to happen. With a `-d` or `-D` option, `<branchname>` will be deleted. You may specify more than one branch for deletion. If the branch currently -has a reflog then the reflog will also be deleted. Use -r together with -d -to delete remote-tracking branches. +has a reflog then the reflog will also be deleted. + +Use -r together with -d to delete remote-tracking branches. Note, that it +only makes sense to delete remote-tracking branches if they no longer exist +in remote repository or if gitlink:git-fetch[1] was configured not to fetch +them again. See also 'prune' subcommand of gitlink:git-remote[1] for way to +clean up all obsolete remote-tracking branches. OPTIONS ------- -d:: - Delete a branch. The branch must be fully merged. + Delete a branch. The branch must be fully merged in HEAD. -D:: - Delete a branch irrespective of its index status. + Delete a branch irrespective of its merged status. -l:: Create the branch's reflog. This activates recording of @@ -153,9 +158,11 @@ $ git branch -d -r origin/todo origin/html origin/man <1> $ git branch -D test <2> ------------ + -<1> Delete remote-tracking branches "todo", "html", "man" -<2> Delete "test" branch even if the "master" branch does not have all -commits from test branch. +<1> Delete remote-tracking branches "todo", "html", "man". Next 'fetch' or +'pull' will create them again unless you configure them not to. See +gitlink:git-fetch[1]. +<2> Delete "test" branch even if the "master" branch (or whichever branch is +currently checked out) does not have all commits from test branch. Notes -- 1.5.3.5