summaryrefslogtreecommitdiff
path: root/Documentation/git-prune.txt
blob: 05c8d4928e4869f5297cf35146a2c2fb167b9062 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
git-prune(1)
============

NAME
----
git-prune - Prunes all unreachable objects from the object database


SYNOPSIS
--------
'git-prune' [-n] [--] [<head>...]

DESCRIPTION
-----------

This runs `git-fsck-objects --unreachable` using the heads
specified on the command line (or `$GIT_DIR/refs/heads/\*` and
`$GIT_DIR/refs/tags/\*` if none is specified), and prunes all
unreachable objects from the object database.  In addition, it
prunes the unpacked objects that are also found in packs by
running `git prune-packed`.

OPTIONS
-------

-n::
	Do not remove anything; just report what it would
	remove.

--::
	Do not interpret any more arguments as options.

<head>...::
	Instead of keeping objects
	reachable from any of our references, keep objects
	reachable from only listed <head>s.
+
Note that the explicitly named <head>s are *not* appended to the
default set of references, but they replace them.  In general you
would want to say `git prune $(git-rev-parse --all) extra1
extra2` to keep chains of commits leading to extra1, extra2,
... in addition to what are reachable from your own refs.
Saying `git prune extra1 extra2` would *lose* objects reachable
only from the usual refs, which is usually not what you want.


EXAMPLE
-------

To prune objects not used by your repository and another that
borrows from your repository via its
`.git/objects/info/alternates`:

------------
$ git prune $(git-rev-parse --all) \
  $(cd ../another && $(git-rev-parse --all))
------------

Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite