File size: 11,034 Bytes
c592385
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv='content-type' content='text/html;charset=utf8'>
  <meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
  <title>git-lfs-fetch(1) - Download all Git LFS files for a given ref</title>
  <style type='text/css' media='all'>
  /* style: man */
  body#manpage {margin:0}
  .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
  .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
  .mp h2 {margin:10px 0 0 0}
  .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
  .mp h3 {margin:0 0 0 4ex}
  .mp dt {margin:0;clear:left}
  .mp dt.flush {float:left;width:8ex}
  .mp dd {margin:0 0 0 9ex}
  .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
  .mp pre {margin-bottom:20px}
  .mp pre+h2,.mp pre+h3 {margin-top:22px}
  .mp h2+pre,.mp h3+pre {margin-top:5px}
  .mp img {display:block;margin:auto}
  .mp h1.man-title {display:none}
  .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
  .mp h2 {font-size:16px;line-height:1.25}
  .mp h1 {font-size:20px;line-height:2}
  .mp {text-align:justify;background:#fff}
  .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
  .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
  .mp u {text-decoration:underline}
  .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
  .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
  .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
  .mp b.man-ref {font-weight:normal;color:#434241}
  .mp pre {padding:0 4ex}
  .mp pre code {font-weight:normal;color:#434241}
  .mp h2+pre,h3+pre {padding-left:0}
  ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
  ol.man-decor {width:100%}
  ol.man-decor li.tl {text-align:left}
  ol.man-decor li.tc {text-align:center;letter-spacing:4px}
  ol.man-decor li.tr {text-align:right;float:right}
  </style>
</head>
<!--
  The following styles are deprecated and will be removed at some point:
  div#man, div#man ol.man, div#man ol.head, div#man ol.man.

  The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
  .man-navigation should be used instead.
-->
<body id='manpage'>
  <div class='mp' id='man'>

  <div class='man-navigation' style='display:none'>
    <a href="#NAME">NAME</a>
    <a href="#SYNOPSIS">SYNOPSIS</a>
    <a href="#DESCRIPTION">DESCRIPTION</a>
    <a href="#OPTIONS">OPTIONS</a>
    <a href="#INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</a>
    <a href="#DEFAULT-REMOTE">DEFAULT REMOTE</a>
    <a href="#DEFAULT-REFS">DEFAULT REFS</a>
    <a href="#RECENT-CHANGES">RECENT CHANGES</a>
    <a href="#EXAMPLES">EXAMPLES</a>
    <a href="#SEE-ALSO">SEE ALSO</a>
  </div>

  <ol class='man-decor man-head man head'>
    <li class='tl'>git-lfs-fetch(1)</li>
    <li class='tc'></li>
    <li class='tr'>git-lfs-fetch(1)</li>
  </ol>

  

<h2 id="NAME">NAME</h2>
<p class="man-name">
  <code>git-lfs-fetch</code> - <span class="man-whatis">Download all Git LFS files for a given ref</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>

<p><code>git lfs fetch</code> [options] [<var>remote</var> [<var>ref</var>...]]</p>

<h2 id="DESCRIPTION">DESCRIPTION</h2>

<p>Download Git LFS objects at the given refs from the specified remote. See
<a href="#DEFAULT-REMOTE" title="DEFAULT REMOTE" data-bare-link="true">DEFAULT REMOTE</a> and <a href="#DEFAULT-REFS" title="DEFAULT REFS" data-bare-link="true">DEFAULT REFS</a> for what happens if you don't specify.</p>

<p>This does not update the working copy.</p>

<h2 id="OPTIONS">OPTIONS</h2>

<dl>
<dt>
<code>-I</code> <var>paths</var> <code>--include=</code><var>paths</var>
</dt>
<dd>Specify lfs.fetchinclude just for this invocation; see <a href="#INCLUDE-AND-EXCLUDE" title="INCLUDE AND EXCLUDE" data-bare-link="true">INCLUDE AND EXCLUDE</a>
</dd>
<dt>
<code>-X</code> <var>paths</var> <code>--exclude=</code><var>paths</var>
</dt>
<dd>Specify lfs.fetchexclude just for this invocation; see <a href="#INCLUDE-AND-EXCLUDE" title="INCLUDE AND EXCLUDE" data-bare-link="true">INCLUDE AND EXCLUDE</a>
</dd>
<dt><code>--recent</code></dt>
<dd>Download objects referenced by recent branches &amp; commits in addition to those
that would otherwise be downloaded. See <a href="#RECENT-CHANGES" title="RECENT CHANGES" data-bare-link="true">RECENT CHANGES</a>
</dd>
<dt><code>--all</code></dt>
<dd>Download all objects that are referenced by any commit reachable from the refs
provided as arguments. If no refs are provided, then all refs are fetched.
This is primarily for backup and migration purposes. Cannot be combined with
--recent or --include/--exclude. Ignores any globally configured include and
exclude paths to ensure that all objects are downloaded.</dd>
<dt>
<code>--prune</code> <code>-p</code>
</dt>
<dd>Prune old and unreferenced objects after fetching, equivalent to running
<code>git lfs prune</code> afterwards. See <a class="man-ref" href="git-lfs-prune.1.html">git-lfs-prune<span class="s">(1)</span></a> for more details.</dd>
</dl>

<h2 id="INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</h2>

<p>You can configure Git LFS to only fetch objects to satisfy references in certain
paths of the repo, and/or to exclude certain paths of the repo, to reduce the
time you spend downloading things you do not use.</p>

<p>In your Git configuration or in a <code>.lfsconfig</code> file, you may set either or
both of <code>lfs.fetchinclude</code> and <code>lfs.fetchexclude</code> to comma-separated lists of
paths.  If <code>lfs.fetchinclude</code> is defined, Git LFS objects will only be fetched
if their path matches one in that list, and if <code>lfs.fetchexclude</code> is defined,
Git LFS objects will only be fetched if their path does not match one
in that list.  Paths are matched using wildcard matching as per <a class="man-ref" href="https://git-scm.com/docs/gitignore">gitignore<span class="s">(5)</span></a>.</p>

<p>Note that using the command-line options <code>-I</code> and <code>-X</code> override the respective
configuration settings.  Setting either option to an empty string clears the
value.</p>

<h3 id="Examples">Examples</h3>

<ul>
  <li>
    <p><code>git config lfs.fetchinclude "textures,images/foo*"</code></p>

    <p>This will only fetch objects referenced in paths in the textures folder, and
files called foo* in the images folder</p>
  </li>
  <li>
    <p><code>git config lfs.fetchinclude "*.jpg,*.png,*.tga"</code></p>

    <p>Only fetch JPG/PNG/TGA files, wherever they are in the repository</p>
  </li>
  <li>
    <p><code>git config lfs.fetchexclude "media/reallybigfiles"</code></p>

    <p>Don't fetch any LFS objects referenced in the folder media/reallybigfiles, but
fetch everything else</p>
  </li>
  <li>
    <p><code>git config lfs.fetchinclude "media"</code><br>
<code>git config lfs.fetchexclude "media/excessive"</code></p>

    <p>Only fetch LFS objects in the 'media' folder, but exclude those in one of its
subfolders.</p>
  </li>
</ul>

<h2 id="DEFAULT-REMOTE">DEFAULT REMOTE</h2>

<p>Without arguments, fetch downloads from the default remote.  The default remote
is the same as for <code>git fetch</code>, i.e. based on the remote branch you're tracking
first, or origin otherwise.</p>

<h2 id="DEFAULT-REFS">DEFAULT REFS</h2>

<p>If no refs are given as arguments, the currently checked out ref is used. In
addition, if enabled, recently changed refs and commits are also
included. See <a href="#RECENT-CHANGES" title="RECENT CHANGES" data-bare-link="true">RECENT CHANGES</a> for details.</p>

<h2 id="RECENT-CHANGES">RECENT CHANGES</h2>

<p>If the <code>--recent</code> option is specified, or if the gitconfig option
<code>lfs.fetchrecentalways</code> is true, then after the current ref (or those in the
arguments) is fetched, we also search for 'recent' changes to fetch
objects for, so that it's more convenient to checkout or diff those commits
without incurring further downloads.</p>

<p>What changes are considered 'recent' is based on a number of gitconfig options:</p>

<ul>
  <li>
    <p><code>lfs.fetchrecentrefsdays</code>
If non-zero, includes branches which have commits within N days of the current
date. Only local refs are included unless lfs.fetchrecentremoterefs is true.
The default is 7 days.</p>
  </li>
  <li>
    <p><code>lfs.fetchrecentremoterefs</code>
If true, fetches remote refs (for the remote you're fetching) as well as local
refs in the recent window. This is useful to fetch objects for remote branches
you might want to check out later. The default is true; if you set this to
false, fetching for those branches will only occur when you either check them
out (losing the advantage of fetch --recent), or create a tracking local
branch separately then fetch again.</p>
  </li>
  <li>
    <p><code>lfs.fetchrecentcommitsdays</code>
In addition to fetching at branches, also fetches changes made within N
days of the latest commit on the branch. This is useful if you're often
reviewing recent changes. The default is 0 (no previous changes).</p>
  </li>
  <li>
    <p><code>lfs.fetchrecentalways</code>
Always operate as if --recent was provided on the command line.</p>
  </li>
</ul>

<h2 id="EXAMPLES">EXAMPLES</h2>

<ul>
  <li>
    <p>Fetch the LFS objects for the current ref from default remote</p>

    <p><code>git lfs fetch</code></p>
  </li>
  <li>
    <p>Fetch the LFS objects for the current ref AND recent changes from default
remote</p>

    <p><code>git lfs fetch --recent</code></p>
  </li>
  <li>
    <p>Fetch the LFS objects for the current ref from a secondary remote 'upstream'</p>

    <p><code>git lfs fetch upstream</code></p>
  </li>
  <li>
    <p>Fetch all the LFS objects from the default remote that are referenced by any
commit in the <code>main</code> and <code>develop</code> branches</p>

    <p><code>git lfs fetch --all origin main develop</code></p>
  </li>
  <li>
    <p>Fetch the LFS objects for a branch from origin</p>

    <p><code>git lfs fetch origin mybranch</code></p>
  </li>
  <li>
    <p>Fetch the LFS objects for 2 branches and a commit from origin</p>

    <p><code>git lfs fetch origin main mybranch e445b45c1c9c6282614f201b62778e4c0688b5c8</code></p>
  </li>
</ul>

<h2 id="SEE-ALSO">SEE ALSO</h2>

<p><a class="man-ref" href="git-lfs-checkout.1.html">git-lfs-checkout<span class="s">(1)</span></a>, <a class="man-ref" href="git-lfs-pull.1.html">git-lfs-pull<span class="s">(1)</span></a>, <a class="man-ref" href="git-lfs-prune.1.html">git-lfs-prune<span class="s">(1)</span></a>, <a class="man-ref" href="https://git-scm.com/docs/gitconfig">gitconfig<span class="s">(5)</span></a>.</p>

<p>Part of the <a class="man-ref" href="git-lfs.1.html">git-lfs<span class="s">(1)</span></a> suite.</p>

  <ol class='man-decor man-foot man foot'>
    <li class='tl'></li>
    <li class='tc'>May 2022</li>
    <li class='tr'>git-lfs-fetch(1)</li>
  </ol>

  </div>
</body>
</html>