khanglam7012 commited on
Commit
353e225
1 Parent(s): 3897b8f

Initial commit

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. CHANGELOG.md +2032 -0
  3. README.md +248 -19
  4. git-lfs +0 -0
  5. git-lfs-linux-amd64-v3.0.2.tar.gz +3 -0
  6. install.sh +22 -0
  7. man/git-lfs-checkout.1 +62 -0
  8. man/git-lfs-checkout.1.html +138 -0
  9. man/git-lfs-clean.1 +25 -0
  10. man/git-lfs-clean.1.html +104 -0
  11. man/git-lfs-clone.1 +49 -0
  12. man/git-lfs-clone.1.html +134 -0
  13. man/git-lfs-config.5 +477 -0
  14. man/git-lfs-config.5.html +520 -0
  15. man/git-lfs-env.1 +16 -0
  16. man/git-lfs-env.1.html +94 -0
  17. man/git-lfs-ext.1 +32 -0
  18. man/git-lfs-ext.1.html +109 -0
  19. man/git-lfs-fetch.1 +150 -0
  20. man/git-lfs-fetch.1.html +228 -0
  21. man/git-lfs-filter-process.1 +36 -0
  22. man/git-lfs-filter-process.1.html +115 -0
  23. man/git-lfs-fsck.1 +38 -0
  24. man/git-lfs-fsck.1.html +116 -0
  25. man/git-lfs-install.1 +58 -0
  26. man/git-lfs-install.1.html +138 -0
  27. man/git-lfs-lock.1 +32 -0
  28. man/git-lfs-lock.1.html +113 -0
  29. man/git-lfs-locks.1 +53 -0
  30. man/git-lfs-locks.1.html +123 -0
  31. man/git-lfs-logs.1 +44 -0
  32. man/git-lfs-logs.1.html +117 -0
  33. man/git-lfs-ls-files.1 +62 -0
  34. man/git-lfs-ls-files.1.html +122 -0
  35. man/git-lfs-migrate.1 +405 -0
  36. man/git-lfs-migrate.1.html +523 -0
  37. man/git-lfs-pointer.1 +48 -0
  38. man/git-lfs-pointer.1.html +119 -0
  39. man/git-lfs-post-checkout.1 +19 -0
  40. man/git-lfs-post-checkout.1.html +98 -0
  41. man/git-lfs-post-commit.1 +22 -0
  42. man/git-lfs-post-commit.1.html +103 -0
  43. man/git-lfs-post-merge.1 +19 -0
  44. man/git-lfs-post-merge.1.html +98 -0
  45. man/git-lfs-pre-push.1 +47 -0
  46. man/git-lfs-pre-push.1.html +119 -0
  47. man/git-lfs-prune.1 +123 -0
  48. man/git-lfs-prune.1.html +222 -0
  49. man/git-lfs-pull.1 +47 -0
  50. man/git-lfs-pull.1.html +134 -0
.gitattributes CHANGED
@@ -25,3 +25,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
25
  *.zip filter=lfs diff=lfs merge=lfs -text
26
  *.zstandard filter=lfs diff=lfs merge=lfs -text
27
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
25
  *.zip filter=lfs diff=lfs merge=lfs -text
26
  *.zstandard filter=lfs diff=lfs merge=lfs -text
27
  *tfevents* filter=lfs diff=lfs merge=lfs -text
28
+ *.psd filter=lfs diff=lfs merge=lfs -text
CHANGELOG.md ADDED
@@ -0,0 +1,2032 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Git LFS Changelog
2
+
3
+ ## 3.0.2 (28 Oct 2021)
4
+
5
+ This release is a bugfix release which fixes a variety of problems seen since
6
+ 3.0.0, including problems with empty files, `git lfs fsck --pointers`, and
7
+ the testsuite.
8
+
9
+ We would like to extend a special thanks to the following open-source
10
+ contributors:
11
+
12
+ * @fh1ch for patches to make things work better on Alpine Linux
13
+ * @pyckle for fixing our handling of filenames in `git lfs migrate import`
14
+ * @ycongal-smile for fixing `git lfs migrate import` with similarly named files
15
+
16
+ ### Bugs
17
+
18
+ * Fix two types of misdetection in git lfs fsck #4697 (@bk2204)
19
+ * lfs: don't flag non-LFS files as invalid pointers #4691 (@bk2204)
20
+ * git: honor GIT_OBJECT_DIRECTORY #4686 (@bk2204)
21
+ * migrate: properly escape blob filenames #4683 (@pyckle)
22
+ * ls-files: don't process empty files as pointers #4681 (@bk2204)
23
+ * Call migrate() BlobFn on every blob #4671 (@ycongal-smile)
24
+ * Correct t-lock regular expression to be musl compatible #4673 (@fh1ch)
25
+
26
+ ### Misc
27
+
28
+ * Allow git-lfs-transfer integration tests to be skipped #4677 (@fh1ch)
29
+ * Make CI environment GIT prefix grep more specific #4678 (@fh1ch)
30
+
31
+ ## 3.0.1 (28 Sep 2021)
32
+
33
+ This release is a bugfix release which fixes the Windows ARM64 build process and
34
+ addresses a regression in support for empty files in pull and fetch.
35
+
36
+ We would like to extend a special thanks to the following open-source
37
+ contributors:
38
+
39
+ * @dennisameling for fixing support for Windows on ARM64
40
+
41
+ ### Bugs
42
+
43
+ * Fix Windows arm64 release #4647 (@dennisameling)
44
+ * fs: specify a file as existing if it's empty #4654 (@bk2204)
45
+
46
+ ## 3.0.0 (24 Sep 2021)
47
+
48
+ This release is a major new release and introduces several new features, such as
49
+ a pure SSH-based protocol, packages for several new OS versions, support for
50
+ ARM64 Windows, Git-compatible pattern matching, and locking multiple files on
51
+ the command line, among other items.
52
+
53
+ When connecting over SSH, the first attempt will be made to use
54
+ `git-lfs-transfer`, the pure SSH protocol, and if it fails, Git LFS will fall
55
+ back to the hybrid protocol using `git-lfs-authenticate`. Note that no major
56
+ forges are known to support the pure SSH protocol at this time.
57
+
58
+ Because it is a major release, we've made some backwards-incompatible changes.
59
+ A (possibly incomplete) list of them is as follows:
60
+
61
+ * NTLM support has been completely removed, since nobody volunteered to fix
62
+ issues in it. Users are advised to use Kerberos or Basic authentication
63
+ instead.
64
+ * When using an SSH URL (that is, the syntax starting with `ssh://`), the
65
+ leading slash is not stripped off when invoking `git-lfs-authenticate` or
66
+ `git-lfs-transfer`. This is compatible with the behavior of Git when invoking
67
+ commands over SSH.
68
+ * `git lfs fsck` now additionally checks that pointers are canonical and that
69
+ files that are supposed to be LFS files actually are. It also exits nonzero
70
+ if any problem is found.
71
+ * Pattern matching should be stricter and should either match the behavior of
72
+ `.gitattributes` or `.gitignore`, as appropriate. Deviations from Git's
73
+ behavior will henceforth be treated as bugs and fixed accordingly.
74
+ * Git LFS will now write a Git LFS repository format version into the
75
+ repository. This is designed to allow future extension with incompatible
76
+ changes. Repositories without this version will be assumed to be version 0.
77
+ Note that this is different from, but modeled on, Git's repository format
78
+ version.
79
+ * `git lfs lock` and `git lfs unlock` now handle multiple pathname arguments and
80
+ the JSON format has changed to handle multiple responses.
81
+ * The Go package name now contains a version number. This should have no effect
82
+ on users because we don't provide a stable Go ABI.
83
+ * Empty components in `PATH` are no longer treated as the current directory on
84
+ Windows because unintentionally having such empty components is common and the
85
+ behavior was surprising.
86
+
87
+ We would like to extend a special thanks to the following open-source
88
+ contributors:
89
+
90
+ * @codykrieger for ensuring that we process includes correctly
91
+ * @corngood for fixing a hang in prune
92
+ * @dennisameling for adding support for Windows on ARM64
93
+ * @fh1ch for fixing our 429 handling
94
+ * @geki-yaba for fixing problems with askpass on Cygwin
95
+ * @gison93 for fixing a bug in our documentation
96
+ * @jvimr for ensuring our Debian packages are built properly
97
+ * @opohorel for ensuring our copyright notices were up to date
98
+ * @rhansen for fixing systems where / is a repository
99
+ * @sergiou87 for improving support for cross builds
100
+ * @slonopotamus for improving our error handling
101
+ * @stanhu for improving our handling of invalid OIDs
102
+ * @Timmmm for improving our support of .lfsconfig
103
+ * @tklauser for avoiding the need for cgo on macOS
104
+
105
+ ### Features
106
+
107
+ * Advertise hash algorithm supported in batch request #4624 (@bk2204)
108
+ * Bump package version to v3 #4611 (@bk2204)
109
+ * Update OS versions #4610 (@bk2204)
110
+ * Add support for Debian 11 #4592 (@bk2204)
111
+ * Support for locking and unlocking multiple files #4604 (@bk2204)
112
+ * Add support for Windows ARM64 #4586 (@dennisameling)
113
+ * LFS repository format version #4552 (@bk2204)
114
+ * Pure SSH-based protocol #4446 (@bk2204)
115
+ * Make fsck able to check for invalid pointers #4525 (@bk2204)
116
+ * Add --fixup option to migrate info command #4501 (@chrisd8088)
117
+ * Allow reporting of LFS pointers separately in migrate info command #4436 (@chrisd8088)
118
+ * Add config variables for default remotes #4469 (@bk2204)
119
+ * Make lfshttp package builds more portable #4476 (@bk2204)
120
+ * Mark skipdownloaderrors as safe #4468 (@Timmmm)
121
+ * Make migrate commands default to preserving uncommitted changes #4454 (@chrisd8088)
122
+ * Darwin ARM64 support #4437 (@bk2204)
123
+ * tools: implement cloneFileSyscall on darwin without cgo #4387 (@tklauser)
124
+ * prune: add options to be more aggressive about pruning #4368 (@bk2204)
125
+
126
+ ### Bugs
127
+
128
+ * corrected debian 11 & 12 derived variants #4622 (@jvimr)
129
+ * urlconfig: anchor regexp for key matching #4598 (@bk2204)
130
+ * filepathfilter: always use Git-compatible pattern matching #4556 (@bk2204)
131
+ * debian and rpm: Pass `--skip-repo` to `install` and `uninstall` #4594 (@rhansen)
132
+ * Fix hang in prune #4557 (@corngood)
133
+ * Disable ANSI color codes while log parsing and anchor diff regular expressions #4585 (@chrisd8088)
134
+ * Fix 429 retry-after handling for LFS batch API endpoint #4573 (@fh1ch)
135
+ * go.mod: bump gitobj to v2.0.2 #4555 (@bk2204)
136
+ * Fix locking with multiple paths and absolute paths #4535 (@bk2204)
137
+ * locking: avoid nil pointer dereference with invalid response #4509 (@bk2204)
138
+ * migrate import: make --above affect only individual files #4512 (@bk2204)
139
+ * fs: be a little less aggressive with cleanup #4490 (@bk2204)
140
+ * Fix downloadFile in gitfilter_smudge.go to actually propagate all errors #4478 (@slonopotamus)
141
+ * Translate Cygwin path patches for askpass helper and cert dir/file #4473 (@geki-yaba)
142
+ * Avoid panic on SIGINT by skipping cleanup when config uninitialized #4463 (@chrisd8088)
143
+ * Parse stash log entries parsimonously in prune command #4449 (@chrisd8088)
144
+ * docs: note that -I and -X override configuration settings #4442 (@bk2204)
145
+ * Make all checks of blobSizeCutoff consistent #4435 (@chrisd8088)
146
+ * Fix up handling of the "migrate info" command's --top option #4434 (@chrisd8088)
147
+ * Tighten LFS pointer regexp #4421 (@stanhu)
148
+ * invoke git-config with --includes to ensure it always evaluates `include.*` directives #4420 (@codykrieger)
149
+ * Canonicalize Windows paths like Git does #4418 (@bk2204)
150
+ * lfsapi: don't warn about duplicate but identical aliases #4413 (@bk2204)
151
+ * lfs: don't invoke diff drivers when pruning repositories #4407 (@bk2204)
152
+ * Consider scheme of request URL, not proxy URL, when choosing proxy #4396 (@bk2204)
153
+ * Makefile: allow make release to be run twice in a row #4344 (@bk2204)
154
+ * Makefile: don't fail the second time macOS builds are built #4341 (@bk2204)
155
+
156
+ ### Misc
157
+
158
+ * subprocess: don't treat empty PATH component as . on Windows #4603 (@bk2204)
159
+ * Switch from which to command -v #4591 (@bk2204)
160
+ * Bump Go to 1.17 #4584 (@dennisameling)
161
+ * Add cautions about unstable Go API and fix GPG key link #4582 (@chrisd8088)
162
+ * Update go.mod module path with explicit v2 #4575 (@chrisd8088)
163
+ * Drop unused ClearTempStorage() transfer adapter method and tune stale comments #4554 (@chrisd8088)
164
+ * README: improve steps for building from source #4527 (@bk2204)
165
+ * Update license year #4513 (@opohorel)
166
+ * docs/man: add note re post-import use of checkout #4504 (@chrisd8088)
167
+ * Bump transitive dependencies #4502 (@bk2204)
168
+ * script/packagecloud: update distros #4494 (@bk2204)
169
+ * Use host architecture and OS when running `go generate` #4492 (@sergiou87)
170
+ * Bump go-spnego to the latest version #4482 (@bk2204)
171
+ * Update git-lfs-migrate man page and add description section #4458 (@chrisd8088)
172
+ * update x/text and dependencies #4455 (@opohorel)
173
+ * Use blobSizeCutoff in clean pointer buffer length check #4433 (@chrisd8088)
174
+ * tools: unset XDG_CONFIG_HOME for filetools test #4432 (@chrisd8088)
175
+ * vendor,go.{mod,sum}: update x/net and dependencies #4398 (@chrisd8088)
176
+ * Remove NTLM #4384 (@bk2204)
177
+ * gitobj 2.0.1 #4348 (@bk2204)
178
+ * Fix numbered list in git lfs examples #4347 (@gison93)
179
+ * Add test for download gzip transport compression #4345 (@bk2204)
180
+
181
+ ## 2.13.3 (26 Mar 2021)
182
+
183
+ This release fixes two bugs that caused `git lfs prune` to hang, updates some
184
+ dependencies to versions which lack a security issue (which did not affect Git
185
+ LFS), and adds support for ARM64 builds on macOS.
186
+
187
+ ### Bugs
188
+
189
+ * lfs: don't invoke diff drivers when pruning repositories #4407 (@bk2204)
190
+ * Parse stash log entries parsimonously in prune command #4449 (@chrisd8088)
191
+
192
+ ### Misc
193
+
194
+ * Darwin ARM64 support #4437 (@bk2204)
195
+ * vendor,go.{mod,sum}: update x/net and dependencies #4398 (@chrisd8088)
196
+
197
+ ## 2.13.2 (13 Jan 2021)
198
+
199
+ This release introduces a security fix for Windows systems, which has been
200
+ assigned CVE-2021-21237.
201
+
202
+ On Windows, if Git LFS operates on a malicious repository with a git.bat or
203
+ git.exe file in the current directory, that program is executed, permitting the
204
+ attacker to execute arbitrary code. This security problem does not affect Unix
205
+ systems. This is the same issue as CVE-2020-27955, but the fix for that issue
206
+ was incomplete and certain options can still cause the problem to occur.
207
+
208
+ This occurs because on Windows, Go includes (and prefers) the current directory
209
+ when the name of a command run does not contain a directory separator. This has
210
+ been solved by always using PATH to pre-resolve paths before handing them to Go.
211
+
212
+ We would like to extend a special thanks to the following open-source
213
+ contributors:
214
+
215
+ * @Ry0taK for reporting this to us responsibly
216
+
217
+ ### Bugs
218
+
219
+ * Use subprocess for invoking all commands (@bk2204)
220
+
221
+ ## 2.13.1 (11 Dec 2020)
222
+
223
+ This release fixes a bug in our build tooling that prevents our release process
224
+ from working properly. This release is otherwise identical to 2.13.0.
225
+
226
+ ### Misc
227
+
228
+ * Makefile: don't fail the second time macOS builds are built #4341 (@bk2204)
229
+
230
+ ## 2.13.0 (10 Dec 2020)
231
+
232
+ This release introduces several new features, such as the `--above` option to
233
+ `git lfs migrate import` and support for `socks5h` proxies. In addition, many
234
+ bugs have been fixed and several miscellaneous fixes have been included.
235
+
236
+ Unless someone steps up to fix and maintain NTLM support, this will be the last
237
+ Git LFS release to support NTLM. See #4247 for more details. Note that Git LFS
238
+ supports Kerberos as well, which is far more secure and may be a viable
239
+ replacement in many situations.
240
+
241
+ We would like to extend a special thanks to the following open-source
242
+ contributors:
243
+
244
+ * @EliRibble for adding support for the `--above` option to `git lfs migrate import`
245
+ * @andrewshadura for adding support for the `GIT_LFS_SKIP_PUSH` environment variable
246
+ * @sinbad for fixing problems with retaining objects used by stashes
247
+ * @tklauser for cleaning up our use of error constants in the code
248
+
249
+ ### Features
250
+
251
+ * Add --above parameter to 'migrate import'. #4276 (@EliRibble)
252
+ * Add GIT_LFS_SKIP_PUSH to allow skipping the pre-push hook #4202 (@andrewshadura)
253
+ * lfshttp: add support for socks5h proxies #4259 (@bk2204)
254
+ * Add manual pages to release assets #4230 (@bk2204)
255
+ * Honor GIT_WORK_TREE #4269 (@bk2204)
256
+
257
+ ### Bugs
258
+
259
+ * Make git lfs migrate import handle missing extensions #4318 (@bk2204)
260
+ * fs: don't panic when using a too-short object ID to push #4307 (@bk2204)
261
+ * Fix pattern matching for .gitattributes #4301 (@bk2204)
262
+ * config: map missing port to default for HTTP key lookups #4282 (@bk2204)
263
+ * tools: use IoctlFileClone from golang.org/x/sys/unix #4261 (@tklauser)
264
+ * tools/util_darwin.go: Remove use of direct syscalls #4251 (@stanhu)
265
+ * tools: always force a UTF-8 locale for cygpath #4231 (@bk2204)
266
+ * prune: fix deleting objects referred to by stashes #4209 (@sinbad)
267
+
268
+ ### Misc
269
+
270
+ * migrate import: warn about refs on case insensitive file systems #4332 (@larsxschneider)
271
+ * Drop obsolete OS support #4328 (@bk2204)
272
+ * tools: use ERROR_SHARING_VIOLATION const from golang.org/x/sys/windows #4291 (@tklauser)
273
+ * pull: gracefully handle merge conflicts #4289 (@bk2204)
274
+ * script/upload: avoid using Ruby's URI.escape #4266 (@bk2204)
275
+ * add documentation of security bug report process #4244 (@chrisd8088)
276
+
277
+ ## 2.12.1 (4 Nov 2020)
278
+
279
+ This release introduces a security fix for Windows systems, which has been
280
+ assigned CVE-2020-27955.
281
+
282
+ On Windows, if Git LFS operates on a malicious repository with a git.bat or
283
+ git.exe file in the current directory, that program is executed, permitting the
284
+ attacker to execute arbitrary code. This security problem does not affect Unix
285
+ systems.
286
+
287
+ This occurs because on Windows, Go includes (and prefers) the current directory
288
+ when the name of a command run does not contain a directory separator. This has
289
+ been solved by always using PATH to pre-resolve paths before handing them to Go.
290
+
291
+ We would like to extend a special thanks to the following open-source
292
+ contributors:
293
+
294
+ * @dawidgolunski for reporting this to us responsibly
295
+
296
+ ### Bugs
297
+
298
+ * subprocess: avoid using relative program names (@bk2204)
299
+
300
+ ## 2.12.0 (1 Sep 2020)
301
+
302
+ This release introduces several new features, such as support for the SHA-256
303
+ repositories coming in a future version of Git, restored support for Go 1.11,
304
+ the ability to read the contents of .lfsconfig from the repository, signed and
305
+ notarized binaries on macOS, and pre-built 32-bit ARM binaries on Linux. In
306
+ addition, several bugs have been fixed and miscellaneous fixes included.
307
+
308
+ Note that macOS releases are now shipped as zip files, not tarballs, since it is
309
+ not possible to notarize tarballs. macOS releases are now also built on macOS,
310
+ so `git lfs dedup` should now function.
311
+
312
+ We would like to extend a special thanks to the following open-source
313
+ contributors:
314
+
315
+ * @saracen for adding support for ARM binaries
316
+ * @mversluys for improving locking support
317
+ * @cccfeng for updating our documentation to make it more readable
318
+ * @bluekeyes for improving performance and tracing
319
+ * @gertcuykens for adding missing parts of our documentation
320
+
321
+ ### Features
322
+
323
+ * config: optionally read .lfsconfig from the repository #4200 (@bk2204)
324
+ * Support SHA-256 repositories #4186 (@bk2204)
325
+ * allow Go 1.11 builds by using WaitStatus.ExitStatus() #4183 (@chrisd8088)
326
+ * add --worktree option to install and uninstall commands #4159 (@chrisd8088)
327
+ * Sign and notarize binaries on macOS #4143 (@bk2204)
328
+ * Makefile: add linux arm build and release targets #4126 (@saracen)
329
+ * Allow locking and unlocking non-existent files #3992 (@mversluys)
330
+
331
+ ### Bugs
332
+
333
+ * docs/api/locking: add an explicit <br> #4208 (@cccfeng)
334
+ * Fix hang when the user lacks permissions #4207 (@bk2204)
335
+ * Don't mark unlocked files that aren't lockable as read-only #4171 (@bk2204)
336
+ * locking: make patterns with slashes work on Windows #4139 (@bk2204)
337
+ * git: consider full refspec when determining seen refs #4133 (@bk2204)
338
+
339
+ ### Misc
340
+
341
+ * Fix Windows CI #4199 (@bk2204)
342
+ * Fix testsuite when working with non-master default branch #4174 (@bk2204)
343
+ * git: improve performance of remote ref listing #4176 (@bluekeyes)
344
+ * subprocess: trace all command execution #4175 (@bluekeyes)
345
+ * Update git-lfs-migrate.1.ronn #3869 (@gertcuykens)
346
+ * t: use repo v1 with extensions #4177 (@bk2204)
347
+ * Makefile: ensure temp Go modules can be deleted #4157 (@chrisd8088)
348
+ * Improve test suite robustness via environment #4132 (@bk2204)
349
+
350
+ ## 2.11.0 (8 May 2020)
351
+
352
+ This release introduces several new features, such as better support for unnamed
353
+ local paths and URLs as remotes, support for `submodule.recurse`, exponential
354
+ backoff on failure, and support for renegotiation. In addition, numerous bugs
355
+ have been fixed and miscellaneous issues have been addressed.
356
+
357
+ We would like to extend a special thanks to the following open-source
358
+ contributors:
359
+
360
+ * @bluekeyes for adding support for exponential backoff
361
+ * @pluehne for adding support for `submodule.recurse`
362
+ * @Electric26 for fixing the default behavior of a prompt
363
+ * @nataliechen1 for fixing certain upload retry failures
364
+ * @shalashik for fixing a panic during cherry-pick
365
+ * @swisspol for updating our documentation to reflect supported `.lfsconfig`
366
+ keys
367
+ * @dan2468 for updating the copyright year
368
+
369
+ ### Features
370
+
371
+ * Allow literal local paths as remotes #4119 (@bk2204)
372
+ * pre-push: find named remote for URL if possible #4103 (@bk2204)
373
+ * tq: add exponential backoff for retries #4097 (@bluekeyes)
374
+ * migrate import: set text to unspecified for excluded fields #4068 (@bk2204)
375
+ * Update list of distros for packagecloud.io #4080 (@bk2204)
376
+ * lfshttp: allow renegotiation #4066 (@bk2204)
377
+ * Support submodule.recurse = true #4063 (@pluehne)
378
+ * add man page for the post-commit hook command #4052 (@chrisd8088)
379
+ * Add an option to control warning about files larger than 4 GiB #4009 (@bk2204)
380
+
381
+ ### Bugs
382
+
383
+ * commands/command_migrate.go: fix bug #4116 (@Electric26)
384
+ * git: avoid "bad object" messages when force-pushing #4102 (@bk2204)
385
+ * git: avoid trying to rewrite remote tags as remote branches #4096 (@bk2204)
386
+ * make Go tests run consistently using local binary #4084 (@chrisd8088)
387
+ * commands: don't honor lfs.fetch* for ls-files #4083 (@bk2204)
388
+ * commands: print help output with --help #4059 (@bk2204)
389
+ * fail dedup command with explanation when LFS extensions configured #4045 (@chrisd8088)
390
+ * fix upload retry 'file already closed' issue' #4042 (@nataliechen1)
391
+ * commands/command_filter_process: cherry-pick of several commits cause panic error #4017 (@shalashik)
392
+ * Check error when creating local storage directory #4016 (@bk2204)
393
+ * track: detect duplicate patterns with --filename #4000 (@bk2204)
394
+
395
+ ### Misc
396
+
397
+ * Removed lfs.extension.* from list of supported keys for .lfsconfig #4044 (@swisspol)
398
+ * Tidy modules #4035 (@bk2204)
399
+ * README: explain how to verify releases #4022 (@bk2204)
400
+ * docs: document git lfs migrate --yes #4023 (@bk2204)
401
+ * Stop using cgo on amd64 Linux #4026 (@bk2204)
402
+ * updated copyright year #3995 (@dan2468)
403
+
404
+ ## 2.10.0 (21 January 2020)
405
+
406
+ This release introduces several new features, such as support for local paths in
407
+ remotes, Kerberos support, and official binaries for S390x and little-endian
408
+ 64-bit PowerPC systems. In addition, numerous bugs have been fixed and
409
+ miscellaneous issues have been addressed.
410
+
411
+ We would like to extend a special thanks to the following open-source
412
+ contributors:
413
+
414
+ * @ganadist for fixing a bug in the output of `git lfs env`
415
+ * @exceed-alae for fixing a possible nil pointer dereference
416
+ * @slonopotamus for improvements to Windows support and code cleanups
417
+ * @nataliechen1 for fixing a data race
418
+ * @ssgelm for writing and updating the code to use a new cookie jar parser
419
+ * @austintraver for improving the output of `git lfs status`
420
+ * @nikola-sh for improving option parity with Git
421
+ * @alrs for fixing several error checks in the testsuite
422
+ * @pluehne for improving our support for uncommon references
423
+
424
+ ### Features
425
+
426
+ * Optimize pushes for multiple refs #3978 (@bk2204)
427
+ * Include ppc64le and s390x Linux builds in releases #3983 (@bk2204)
428
+ * Kerberos (SPNEGO) support for HTTP #3941 (@bk2204)
429
+ * Add support for local paths #3918 (@bk2204)
430
+ * Allow specifying HTTP version to use #3887 (@bk2204)
431
+
432
+ ### Bugs
433
+
434
+ * t-duplicate-oids: use correct awk indexing #3981 (@bk2204)
435
+ * Improved proxy support #3972 (@bk2204)
436
+ * install: don't print error if run outside repository #3969 (@bk2204)
437
+ * debian: bump version of golang-go #3959 (@bk2204)
438
+ * lfshttp: Set valid default value for lfs.concurrenttransfers #3949 (@ganadist)
439
+ * Add nil-check on defer block of DoTransfer() #3936 (@exceed-alae)
440
+ * Retry batch failures #3930 (@bk2204)
441
+ * rpm: use old setup code on CentOS 7 #3938 (@bk2204)
442
+ * Interpret relative hook paths as relative to working tree #3926 (@bk2204)
443
+ * Handle missing cygpath gracefully #3910 (@bk2204)
444
+ * Update index before showing status #3921 (@bk2204)
445
+ * Honor lfs.url when deciding on transfer adapters #3905 (@bk2204)
446
+ * Implement retry logic to fix LFS storage race conditions on Windows #3890 (@slonopotamus)
447
+ * Avoid hang when using git hash-object --stdin --path #3902 (@bk2204)
448
+ * synchronize access to netrcCredentialHelper.skip #3896 (@nataliechen1)
449
+
450
+ ### Misc
451
+
452
+ * Improve license files #3973 (@bk2204)
453
+ * Add CI link to CI badge in README #3960 (@slonopotamus)
454
+ * Clarify output shown by `git lfs status` #3953 (@austintraver)
455
+ * Revert "ci: force Windows Git version to 2.22.0" #3903 (@bk2204)
456
+ * Better document pointer format constraints #3944 (@bk2204)
457
+ * Don't abort with newer Git when in a bare repo #3940 (@bk2204)
458
+ * Fix more Linux package issues #3932 (@bk2204)
459
+ * docs: explain shell metacharacters better #3920 (@bk2204)
460
+ * Reset the text attribute on export #3913 (@bk2204)
461
+ * Support schannel ssl backend #3868 (@nikola-sh)
462
+ * Allow migrate export to handle non-pointer files gracefully #3911 (@bk2204)
463
+ * git/gitattr: fix dropped test errors #3904 (@alrs)
464
+ * Accept all local references with git lfs push #3876 (@pluehne)
465
+ * Drop pre-1.6 Go compatibility code #3897 (@slonopotamus)
466
+ * tools/kv: Fix dropped test error #3882 (@alrs)
467
+ * Use different parser for cookiejar files #3886 (@ssgelm)
468
+ * Stop replacing files in LFS storage when downloading them concurrently on Windows #3880 (@slonopotamus)
469
+ * Fix error strings to follow Go guidelines #3871 (@slonopotamus)
470
+ * Miscellaneous release fixes #3866 (@bk2204)
471
+
472
+ ## 2.9.2 (12 December 2019)
473
+
474
+ This release fixes a few regressions, such as a possible nil pointer
475
+ dereference, a failure to retry batch requests, and a bug where repositories
476
+ could fail to be detected on Windows.
477
+
478
+ We would like to extend a special thanks to the following open-source
479
+ contributors:
480
+
481
+ * @exceed-alae for fixing a possible nil pointer dereference
482
+
483
+ ### Bugs
484
+
485
+ * Add nil-check on defer block of DoTransfer() #3936 (@exceed-alae)
486
+ * Retry batch failures #3930 (@bk2204)
487
+ * rpm: use old setup code on CentOS 7 #3938 (@bk2204)
488
+ * Handle missing cygpath gracefully #3910 (@bk2204)
489
+
490
+ ### Misc
491
+
492
+ * Don't abort with newer Git when in a bare repo #3940 (@bk2204)
493
+ * Fix more Linux package issues #3932 (@bk2204)
494
+
495
+ ## 2.9.1 (25 November 2019)
496
+
497
+ This release fixes a few regressions, such as the ability to use HTTP/1.1 when
498
+ required, addresses a race condition, and switches the cookie jar parser to
499
+ something that's easier for distributions to package.
500
+
501
+ We would like to extend a special thanks to the following open-source
502
+ contributors:
503
+
504
+ * @nataliechen1 for fixing a data race
505
+ * @ssgelm for writing and updating the code to use a new cookie jar parser
506
+
507
+ ### Features
508
+
509
+ * Allow specifying HTTP version to use #3887 (@bk2204)
510
+
511
+ ### Bugs
512
+
513
+ * synchronize access to netrcCredentialHelper.skip #3896 (@nataliechen1)
514
+ * Fix several causes of CI problems #3878 (@bk2204)
515
+ * Miscellaneous release fixes #3866 (@bk2204)
516
+
517
+ ### Misc
518
+
519
+ * Build artifacts during CI for easier testing #3892 (@bk2204)
520
+ * Use different parser for cookiejar files #3886 (@ssgelm)
521
+
522
+ ## 2.9.0 (17 October 2019)
523
+
524
+ This release adds support for DragonFly BSD, adds a new `git lfs dedup` command
525
+ to save space if the file system supports it, adds support for file URLs,
526
+ improves the performance when walking the repository, contains improvements
527
+ to use HTTP/2 when available and cookies when required, and numerous other bug
528
+ fixes, features, and modifications.
529
+
530
+ We would like to extend a special thanks to the following open-source
531
+ contributors:
532
+
533
+ * @pluehne for adding support for fetching the history of specific refs
534
+ * @kupson for adding cookie support
535
+ * @liweitianux for adding Dragonfly BSD support
536
+ * @kazuki-ma for implementing de-duplication support
537
+ * @dvdveer for adding range support to ls-files
538
+ * @dyrone, @pmeerw, @yamiacat, and @kittenking for cleaning up some documentation issues
539
+ * @slonopotamus for improving concurrent downloads
540
+ * @nataliechen1 for fixing remote names with dots
541
+ * @jw3 for removing excessive logging
542
+ * @SeamusConnor for significantly improving performance when walking the repository
543
+
544
+ ### Features
545
+
546
+ * Support fetching entire history of specific refs #3849 (@pluehne)
547
+ * Add support for CentOS 8 #3854 (@bk2204)
548
+ * Let git-lfs HTTPS transport send cookies #3825 (@kupson)
549
+ * Support DragonFly BSD #3837 (@liweitianux)
550
+ * HTTP/2 protocol support #3793 (@PastelMobileSuit)
551
+ * Add clonefile on Windows over ReFS support. #3790 (@kazuki-ma)
552
+ * Add new command `git lfs dedup` for file system level de-duplication. #3753 (@kazuki-ma)
553
+ * Support GIT_ALTERNATE_OBJECT_DIRECTORIES #3765 (@bk2204)
554
+ * ls-files: add support for reference range #3764 (@dvdveer)
555
+ * Add several additional distros for packagecloud.io #3751 (@bk2204)
556
+ * Provide an option to track to handle paths literally #3756 (@bk2204)
557
+ * Optimize traversal of Git objects with URL remotes #3755 (@bk2204)
558
+ * Support for file URLs #3748 (@bk2204)
559
+ * Add clone file on MacOS X (darwin). #3745 (@kazuki-ma)
560
+
561
+ ### Bugs
562
+
563
+ * Fix JSON comma problems in docs #3851 (@dyrone)
564
+ * Remove redundant comma in batch.md #3841 (@dyrone)
565
+ * More robust handling of parallel attempts to download the same file #3826 (@slonopotamus)
566
+ * Update wildmatch to v1.0.4 #3820 (@bk2204)
567
+ * Update to gitobj v1.4.1 #3815 (@bk2204)
568
+ * Fix build error when cross-compiling #3817 (@bk2204)
569
+ * Do not fail when multiple processes download the same lfs file #3813 (@slonopotamus)
570
+ * Fix Remote Name Parsing Bug #3812 (@nataliechen1)
571
+ * status: gracefully handle files replaced by directories #3768 (@bk2204)
572
+ * Avoid deadlock when transfer queue fails #3800 (@bk2204)
573
+ * Avoid a hang when Git is slow to provide us data #3806 (@bk2204)
574
+ * tasklog/log.go: print "done" messages with a trailing period #3789 (@ttaylorr)
575
+ * track: make --filename work with spaces #3785 (@bk2204)
576
+ * Fix couple of 'the the' typos #3786 (@pmeerw)
577
+ * Use an absolute path for smudging #3780 (@bk2204)
578
+ * Fix URL parsing with Go 1.12.8 #3771 (@bk2204)
579
+ * Fix remote autoselection when not on a branch #3759 (@bk2204)
580
+ * Replace deprecated SEEK_SET, SEEK_CUR usage. #3739 (@kazuki-ma)
581
+ * Do not log skipped checkouts to file #3736 (@jw3)
582
+ * Fix typos across git-lfs repository #3728 (@kittenking)
583
+ * Accept legacy Git SSH URLs #3713 (@bk2204)
584
+
585
+ ### Misc
586
+
587
+ * ls-files --all man patch #3859 (@yamiacat)
588
+ * Reworked to use git ls-files in some circumstances instead of FastWalkGitRepo #3823 (@SeamusConnor)
589
+ * Clean up go.mod for Go 1.13 #3807 (@bk2204)
590
+ * Use FICLONE instead of BTRFS_IOC_CLONE. #3796 (@kazuki-ma)
591
+ * Remove unused pty code #3737 (@bk2204)
592
+
593
+ ## 2.8.0 (23 July 2019)
594
+
595
+ This release adds support for SOCKS proxies and Windows junctions, adds native
596
+ packages for Debian 10 and similar distributions, reduces the number of
597
+ situations in which running `git lfs fetch --all` is required, improves
598
+ compatibility with Cygwin, and numerous other bug fixes and modifications.
599
+
600
+ We would like to extend a special thanks to the following open-source
601
+ contributors:
602
+
603
+ * @mstrap for adding support for listing lock owners
604
+ * @h-hirokawa for adding support for rewriting object URLs
605
+ * @slonopotamus for helping get our specs and implementation in sync
606
+ * @ssgelm for improving our Debian packaging
607
+ * @TBK for fixing a test
608
+ * @hartzell for improving the compatibility of our Makefile
609
+ * @AJH16 for implementing support for NTLM SSO
610
+
611
+ ### Features
612
+
613
+ * Don't fail if we lack objects the server has #3634 (@bk2204)
614
+ * Add support for Debian 10 #3697 (@bk2204)
615
+ * Migrate tags pointing to other tags #3690 (@bk2204)
616
+ * Add support for SOCKS proxies #3677 (@bk2204)
617
+ * Allow vendors to customize the version info #3636 (@bk2204)
618
+ * Wrap credential data to allow late credential prompting and update NTLM/SSPI to attempt SSPI login prior to prompting for credentials. #3617 (@AJH16)
619
+ * git-lfs locks should optionally denote own locks #3569 (@mstrap)
620
+ * tq/adapterbase: support rewriting href #3590 (@h-hirokawa)
621
+ * Handle Windows junctions properly #3560 (@bk2204)
622
+ * Allow specifying multiple insteadOf aliases #3550 (@bk2204)
623
+
624
+ ### Bugs
625
+
626
+ * Make API documentation lock creation example less confusing #3648 (@bk2204)
627
+ * Use a download token when searching locks #3715 (@bk2204)
628
+ * Copy mode from original file when rewriting objects #3694 (@bk2204)
629
+ * Don't recurse into submodules when walking repository #3686 (@bk2204)
630
+ * Be more precise about what timestamps we accept #3680 (@bk2204)
631
+ * Canonicalize common directory paths on Cygwin #3671 (@bk2204)
632
+ * Ensure we always use correct Content-Type and Accept headers #3663 (@bk2204)
633
+ * Fix 'owner' lock field not documented as optional #3651 (@slonopotamus)
634
+ * Improve error handling in git lfs install #3624 (@bk2204)
635
+ * Properly handle config options for URLs with upper case letters #3584 (@bk2204)
636
+ * Detect Cygwin-style pipe TTYs as TTYs #3582 (@bk2204)
637
+ * Set push remote for pre-push #3579 (@bk2204)
638
+ * Switch from manually running go generate to using dh-golang to run it #3549 (@ssgelm)
639
+ * Install worktree hooks in the proper directory #3547 (@bk2204)
640
+ * Avoid nil pointer dereference on download failure #3537 (@bk2204)
641
+ * Avoid nil pointer dereference on unexpected failure #3534 (@bk2204)
642
+
643
+ ### Misc
644
+
645
+ * Update gitobj to v1.3.1 #3716 (@bk2204)
646
+ * Use default line endings for core.autocrlf=input #3712 (@bk2204)
647
+ * Fix CircleCI #3710 (@bk2204)
648
+ * Vendor in gitobj v1.3.0 #3685 (@bk2204)
649
+ * Update CONTRIBUTING #3673 (@bk2204)
650
+ * Fix typo in t-locks.sh #3666 (@TBK)
651
+ * Make 'locked_at' required in JSON schema #3655 (@slonopotamus)
652
+ * Document a new batch error code #3639 (@bk2204)
653
+ * Fix invalid JSON in LFS locking API documentation #3650 (@slonopotamus)
654
+ * Fix invalid JSON in locking protocol docs #3644 (@slonopotamus)
655
+ * Various release updates #3623 (@bk2204)
656
+ * tq/adapterbase: fix typo enableHrefRerite to enableHrefRewrite #3594 (@h-hirokawa)
657
+ * Use git-lfs version of go-ntlm #3588 (@bk2204)
658
+ * Log test server standard error to log file #3577 (@bk2204)
659
+ * Don't set -extldflags unless LDFLAGS has a value #3545 (@hartzell)
660
+ * Retry on oversize file #3518 (@bk2204)
661
+ * Fix asset uploading during releases #3538 (@bk2204)
662
+
663
+ ## 2.7.0 (15 February 2019)
664
+
665
+ This release adds better support for large files on 32-bit systems, adds
666
+ attribute macros, fixes several file descriptor leaks, improves compatibility
667
+ with Git's configuration parsing, and includes numerous other bug fixes and
668
+ modifications.
669
+
670
+ We would like to extend a special thanks to the following open-source
671
+ contributors:
672
+
673
+ * @andyneff and @torbjoernk for updating our release targets
674
+ * @zkry for work on rate-limiting
675
+ * @Foxboron for work on reproducible builds
676
+ * @mstrap for adding a release target for Linux arm64
677
+ * @keiko713, @Erwyn, and @mloskot for improving our documentation
678
+ * @QuLogic for fixing our tests under SELinux
679
+ * @saracen and @steffengodskesen for improving our output handling
680
+ * @mbsulliv for finding and fixing a bug where we ran out of file descriptors
681
+
682
+ ### Features
683
+
684
+ * Add sles 15 support #1055 #3515 (@andyneff)
685
+ * docs/man/git-lfs-config.5.ronn: document GIT_LFS_SKIP_SMUDGE #3509 (@ttaylorr)
686
+ * commands/command_pointer.go: introduce `--check` option #3501 (@ttaylorr)
687
+ * Makefile additions for reproducible builds and asmflags #3444 (@Foxboron)
688
+ * locking: add flag to control modification of ignored files #3409 (@bk2204)
689
+ * build package for Ubuntu 18.10 aka Cosmic #3402 (@torbjoernk)
690
+ * Add support for retries with delays (ex. rate limiting) #3449 (@zkry)
691
+ * Trim embedded paths out of binaries #3443 (@bk2204)
692
+ * Ensure 32-bit Git LFS binaries can handle files larger than 4 GiB #3426 (@bk2204)
693
+ * Support attribute macros #3391 (@bk2204)
694
+ * tasklog: don't log progress status when stdout is not a tty #3349 (@steffengodskesen)
695
+ * locking: cache JSON response from server #3253 (@mstrap)
696
+ * tq: enable transfer debugging when GIT_CURL_VERBOSE is set #3341 (@bk2204)
697
+
698
+ ### Bugs
699
+
700
+ * .circleci: don't use 'brew prune' #3514 (@ttaylorr)
701
+ * t/t-smudge.sh: remove unnecessary test #3513 (@ttaylorr)
702
+ * docs/man: fix inconsistency in 'git-lfs-ls-files(1)' #3496 (@ttaylorr)
703
+ * lfshttp: close body on redirect #3479 (@bk2204)
704
+ * status: handle deleted files gracefully #3482 (@bk2204)
705
+ * Fix hang in prune with too few file descriptors #3460 (@bk2204)
706
+ * Fix parameter name on List Locks API Documentation #3477 (@Erwyn)
707
+ * TST: Trim security context when checking permissions. #3476 (@QuLogic)
708
+ * command/env: ensure we honor lfs.url #3470 (@bk2204)
709
+ * Fix swapped case sensitivity in patterns #3433 (@bk2204)
710
+ * core.sharedRepository improvements for directories #3417 (@bk2204)
711
+ * Update the doc of whitelisted .lfsconfig keys #3423 (@keiko713)
712
+ * Rewrite URL config-matching #3392 (@PastelMobileSuit)
713
+ * git: close blob objects when finished #3379 (@bk2204)
714
+ * Avoid hang in repos cloned with --shared or --reference #3383 (@bk2204)
715
+ * commands/command_status.go: require a working copy #3378 (@ttaylorr)
716
+ * Fix test server API #3377 (@bk2204)
717
+ * vendor: don't remove necessary dependencies #3356 (@ttaylorr)
718
+ * filepathfilter: don't say file is both accepted and rejected #3360 (@bk2204)
719
+ * Support pushInsteadOf aliases when determining endpoints #3353 (@bk2204)
720
+ * Close attributes file #3347 (@mbsulliv)
721
+ * Fix humanize's FormatByteRate() to work with 0s duration #3340 (@saracen)
722
+
723
+ ### Misc
724
+
725
+ * Release automation #3510 (@bk2204)
726
+ * docs/man: update `git-lfs-fetch(1)` manpage #3488 (@ttaylorr)
727
+ * Update Cobra #3483 (@bk2204)
728
+ * Run go generate only on Windows #3480 (@bk2204)
729
+ * docs/man/git-lfs-migrate: make examples less confusing #3424 (@bk2204)
730
+ * Modify logic of 'migrate info' to process extensionless files #3458 (@zkry)
731
+ * Improve error message on missing object #3398 (@bk2204)
732
+ * docs/man: suggest using Git configuration for LFS keys #3394 (@bk2204)
733
+ * Document default value of migrate info --top=<n> #3387 (@mloskot)
734
+ * Clarify minimum git version #3327 (@carlwgeorge)
735
+
736
+ ## 2.6.1 (3 December 2018)
737
+
738
+ This release contains miscellaneous bug fixes since v2.6.0. Most notably,
739
+ release v2.6.1 restores support for alternate repositories, which was
740
+ accidentally broken in v2.6.0.
741
+
742
+ ### Bugs
743
+
744
+ * git: close blob objects when finished #3379 (@bk2204)
745
+ * Avoid hang in repos cloned with --shared or --reference #3383 (@bk2204)
746
+ * vendor: don't remove necessary dependencies #3356 (@ttaylorr)
747
+
748
+ ## 2.6.0 (1 November, 2018)
749
+
750
+ This release adds better support for redirecting network calls from a Git LFS
751
+ API server to one that requires a different authentication mode, builds Git LFS
752
+ on Go 1.11, and numerous other bug fixes and modifications.
753
+
754
+ We would like to extend a special thanks to the following open-source
755
+ contributors:
756
+
757
+ * @andyneff for updating our release targets
758
+ * @gtsiolis: for removing the deprecated `git lfs clone` from the listing of
759
+ supported Git LFS commands
760
+ * @jsantell for fixing a formatting issue in the INCLUDE AND EXCLUDE man page
761
+ section
762
+ * @mmlb for adding a release target for Linux arm64
763
+ * @skashyap7 for adding the 'git lfs track -n'
764
+ * @Villemoes: for modernizing the Git LFS installation procedure on Debian.
765
+
766
+ ### Features
767
+
768
+ * commands: list explicitly excluded patterns separately #3320 (@bk2204)
769
+ * Uninstall improvements #3326 (@bk2204)
770
+ * config: honor GIT_AUTHOR_DATE and GIT_COMMITTER_DATE #3314 (@bk2204)
771
+ * Add new `.netrc` credential helper #3307 (@PastelMobileSuit)
772
+ * Honor umask and core.sharedRepository #3304 (@bk2204)
773
+ * Support listing only filename tracked by git lfs using --name (-n) option
774
+ #3271 (@skashyap7)
775
+ * all: use Go 1.11.1 in CI #3298 (@ttaylorr)
776
+ * lfsapi/tq: Have DoWithAuth() caller determine URL Access Mode #3293
777
+ (@PastelMobileSuit)
778
+ * commands: undeprecate checkout #3303 (@bk2204)
779
+ * Checkout options for conflicts #3296 (@bk2204)
780
+ * Makefile: build source tarballs for release #3283 (@bk2204)
781
+ * Encrypted SSL key support #3270 (@bk2204)
782
+ * Add support for core.sshCommand #3235 (@bk2204)
783
+ * gitobj-based Object Scanner #3236 (@bk2204)
784
+ * README.md: new core team members #3217 (@ttaylorr)
785
+ * Add build and releases for linux arm64 #3196 (@mmlb)
786
+ * Update packagecloud.rb #3210 (@andyneff)
787
+ * all: use Go modules instead of Glide #3208 (@ttaylorr)
788
+ * all: use Go 1.11 in CI #3203 (@ttaylorr)
789
+
790
+ ### Bugs
791
+
792
+ * Fix formatting of INCLUDE AND EXCLUDE (REFS) #3330 (@jsantell)
793
+ * go.sum: add missing entries #3319 (@bk2204)
794
+ * Ensure correct syntax for commit headers in lfs migrate import #3313 (@bk2204)
795
+ * Clean up trailing whitespace #3299 (@bk2204)
796
+ * commands: unambiguously resolve remote references #3285 (@ttaylorr)
797
+ * Expand custom transfer args by using the shell #3259 (@bk2204)
798
+ * Canonicalize paths properly on Windows #3277 (@bk2204)
799
+ * debian/prerm: add --system flag #3272 (@Villemoes)
800
+ * t: make testsuite run under git rebase -x #3262 (@bk2204)
801
+ * git/gitattr: parse 'set' attributes #3255 (@ttaylorr)
802
+ * t: avoid panic in lfstest-customadapter #3243 (@bk2204)
803
+ * t: avoid using shell variables in printf's first argument #3242 (@bk2204)
804
+ * lfsapi: handle SSH hostnames and aliases without users #3230 (@bk2204)
805
+ * commands/command_ls_files.go: ignore index with argument #3219 (@ttaylorr)
806
+ * commands/command_migrate_import.go: install hooks #3227 (@ttaylorr)
807
+ * t: mark test sources as .PHONY #3228 (@ttaylorr)
808
+ * Pass GIT_SSH_COMMAND to the shell #3199 (@bk2204)
809
+ * Tidy misformatted files #3202 (@bk2204)
810
+ * config: expand core.hooksPath #3212 (@ttaylorr)
811
+ * locks: manage write permissions of ignored files #3190 (@ttaylorr)
812
+
813
+ ### Misc
814
+
815
+ * CONTRIBUTING.md: :nail_care: #3325 (@ttaylorr)
816
+ * Update CONTRIBUTING #3317 (@bk2204)
817
+ * go.mod: depend on tagged gitobj #3311 (@ttaylorr)
818
+ * RFC: SSH protocol #3290 (@bk2204)
819
+ * Remove `git lfs clone` command from man #3301 (@gtsiolis)
820
+ * ROADMAP.md: use GitHub issues instead #3286 (@ttaylorr)
821
+ * docs: add note about closing release milestone #3274 (@bk2204)
822
+ * CI improvements #3268 (@bk2204)
823
+ * docs/howto: document our release process #3261 (@ttaylorr)
824
+ * Create new lfshttp package #3244 (@PastelMobileSuit)
825
+ * CONTRIBUTING: update required go version #3232 (@PastelMobileSuit)
826
+ * go.mod: use latest github.com/olekukonko/ts #3223 (@ttaylorr)
827
+ * go.mod: pin github.com/git-lfs/wildmatch to v1.0.0 #3218 (@ttaylorr)
828
+ * Update README.md #3193 (@srl295)
829
+
830
+ ## 2.5.2 (17 September, 2018)
831
+
832
+ ### Bugs
833
+
834
+ * config: Treat [host:port]:path URLs correctly #3226 (@saschpe)
835
+ * tq: Always provide a Content-Type when uploading files #3201 (@bk2204)
836
+ * commands/track: Properly `lfs track` files with escaped characters in their
837
+ name #3192 (@leonid-s-usov)
838
+
839
+ ### Misc
840
+
841
+ * packagecloud.rb: remove older versions #3210 (@andyneff)
842
+
843
+ ## 2.5.1 (2 August, 2018)
844
+
845
+ This release contains miscellaneous bug fixes since v2.5.0. Most notably,
846
+ release v2.5.1 allows a user to disable automatic Content-Type detection
847
+ (released in v2.5.0) via `git config lfs.contenttype false` for hosts that do
848
+ not support it.
849
+
850
+ ### Features
851
+
852
+ * tq: make Content-Type detection disable-able #3163 (@ttaylorr)
853
+
854
+ ### Bugs
855
+
856
+ * Makefile: add explicit rule for commands/mancontent_gen.go #3160 (@jj1bdx)
857
+ * script/install.sh: mark as executable #3155 (@ttaylorr)
858
+ * config: add origin to remote list #3152 (@PastelMobileSuit)
859
+
860
+ ### Misc
861
+
862
+ * docs/man/mangen.go: don't show non-fatal output without --verbose #3168
863
+ (@ttaylorr)
864
+ * LICENSE.md: update copyright year #3156 (@IMJ355)
865
+ * Makefile: silence some output #3164 (@ttaylorr)
866
+ * Makefile: list prerequisites for resource.syso #3153 (@ttaylorr)
867
+
868
+ ## 2.5.0 (26 July, 2018)
869
+
870
+ This release adds three new migration modes, updated developer ergonomics, and
871
+ a handful of bug fixes to Git LFS.
872
+
873
+ We would like to extend a special thanks to the following open-source
874
+ contributors:
875
+
876
+ * @calavera for fixing a broken Go test and adding support for custom
877
+ Content-Type headers in #3137 and #3138.
878
+ * @cbuehlmann for adding support for encoded character names in filepaths via
879
+ #3093.
880
+ * @larsxschneider for changing the default value of lfs.allowincompletepush in
881
+ #3109.
882
+ * @NoEffex for supporting TTL in SSH-based authentication tokens via #2867.
883
+ * @ssgelm for adding 'go generate' to our Debian packages via #3083.
884
+
885
+ ### Features
886
+
887
+ * Makefile: replace many scripts with make targets #3144 (@ttaylorr)
888
+ * {.travis,appveyor}.yml: upgrade to Go 1.10.3 #3146 (@ttaylorr)
889
+ * t: run tests using prove #3125 (@ttaylorr)
890
+ * commands/migrate: infer wildmatches with --fixup #3114 (@ttaylorr)
891
+ * Retry SSH resolution 5 times #2934 (@stanhu)
892
+ * Implement `migrate export` subcommand #3084 (@PastelMobileSuit)
893
+ * Add `--no-rewrite` flag to `migrate import` command #3029 (@PastelMobileSuit)
894
+
895
+ ### Bugs
896
+
897
+ * t: fix contains_same_elements() fn #3145 (@PastelMobileSuit)
898
+ * commands: warn if working copy is dirty #3124 (@ttaylorr)
899
+ * Ensure provided remote takes precedence over configured pushRemote #3139 (@PastelMobileSuit)
900
+ * Fix proxy unit tests. #3138 (@calavera)
901
+ * commands/command_migrate.go: loosen meaning of '--everything' #3121 (@ttaylorr)
902
+ * lfsapi: don't query askpass for given creds #3126 (@PastelMobileSuit)
903
+ * config/git_fetcher.go: mark 'lfs.allowincompletepush' as safe #3113 (@ttaylorr)
904
+ * fs: support multiple object alternates #3116 (@ttaylorr)
905
+ * commands/checkout: checkout over read-only files #3120 (@ttaylorr)
906
+ * test/testhelpers.sh: look for 64 character SHA-256's #3119 (@ttaylorr)
907
+ * config/config.go: case-insensitive error search #3098 (@ttaylorr)
908
+ * Encoded characters in pathnames #3093 (@cbuehlmann)
909
+ * Support default TTL for authentication tokens acquired via SSH #2867 (@NoEffex)
910
+ * commands/status.go: relative paths outside of root #3080 (@ttaylorr)
911
+ * Run `go generate` on commands in deb build #3083 (@ssgelm)
912
+ * lfsapi: prefer proxying from gitconfig before environment #3062 (@ttaylorr)
913
+ * commands/track: respect global- and system-level gitattributes #3076 (@ttaylorr)
914
+ * git/git.go: pass --multiple to git-fetch(1) when appropriate #3063 (@ttaylorr)
915
+ * commands/checkout: fix inaccurate messaging #3055 (@ttaylorr)
916
+ * commands/migrate: do not migrate empty commits #3054 (@ttaylorr)
917
+ * git/odb: retain trailing newlines in commit messages #3053 (@ttaylorr)
918
+
919
+ ### Misc
920
+
921
+ * Set original file content type on basic upload. #3137 (@calavera)
922
+ * README.md: Git for Windows ships LFS by default #3112 (@larsxschneider)
923
+ * change lfs.allowincompletepush default from true to false #3109 (@larsxschneider)
924
+ * *: replace git/odb with vendored copy #3108 (@ttaylorr)
925
+ * test/test-ls-files.sh: skip on CircleCI #3101 (@ttaylorr)
926
+ * lfsapi/ssh.go: use zero-value sentinels #3099 (@ttaylorr)
927
+ * README.md: add link to installation wiki page #3075 (@ttaylorr)
928
+ * docs/man/git-lfs.1.ronn: update casing and missing commands #3059 (@ttaylorr)
929
+ * commands/checkout: mark 'git lfs checkout' as deprecated #3056 (@ttaylorr)
930
+
931
+ ## 2.4.2 (28 May, 2018)
932
+
933
+ ### Bugs
934
+
935
+ * lfsapi: re-authenticate HTTP redirects when needed #3028 (@ttaylorr)
936
+ * lfsapi: allow unknown keywords in netrc file(s) #3027 (@ttaylorr)
937
+
938
+ ## 2.4.1 (18 May, 2018)
939
+
940
+ This release fixes a handful of bugs found and fixed since v2.4.0. In
941
+ particular, Git LFS no longer panic()'s after invalid API responses, can
942
+ correctly run 'fetch' on SHAs instead of references, migrates symbolic links
943
+ correctly, and avoids writing to `$HOME/.gitconfig` more than is necessary.
944
+
945
+ We would like to extend a "thank you" to the following contributors for their
946
+ gracious patches:
947
+
948
+ - @QuLogic fixed an issue with running tests that require credentials
949
+ - @patrickmarlier made it possible for 'git lfs migrate import' to work
950
+ correctly with symbolic links.
951
+ - @zackse fixed an inconsistency in `CONTRIBUTING.md`
952
+ - @zanglang fixed an inconsistency in `README.md`
953
+
954
+ Git LFS would not be possible without generous contributions from the
955
+ open-source community. For these, and many more: thank you!
956
+
957
+ ### Features
958
+
959
+ * script/packagecloud.rb: release on Ubuntu Bionic #2961 (@ttaylorr)
960
+
961
+ ### Bugs
962
+
963
+ * lfsapi: canonicalize extra HTTP headers #3010 (@ttaylorr)
964
+ * commands/lock: follow symlinks before locking #2996 (@ttaylorr)
965
+ * lfs/attribute.go: remove default value from upgradeables #2994 (@ttaylorr)
966
+ * git: include SHA1 in ref-less revisions #2982 (@ttaylorr)
967
+ * Do not migrate the symlinks to LFS objects. #2983 (@patrickmarlier)
968
+ * commands/uninstall: do not log about global hooks with --local #2976 (@ttaylorr)
969
+ * commands/run.go: exit 127 on unknown sub-command #2969 (@ttaylorr)
970
+ * commands/{un,}track: perform "prefix-agnostic" comparisons #2955 (@ttaylorr)
971
+ * commands/migrate: escape paths before .gitattributes #2933 (@ttaylorr)
972
+ * commands/ls-files: do not accept '--all' after '--' #2932 (@ttaylorr)
973
+ * tq: prevent uint64 underflow with invalid API response #2902 (@ttaylorr)
974
+
975
+ ### Misc
976
+
977
+ * test/test-env: skip comparing GIT_EXEC_PATH #3015 (@ttaylorr)
978
+ * remove reference to CLA from contributor's guide #2997 (@zackse)
979
+ * .gitattributes link is broken #2985 (@zanglang)
980
+ * commands: make --version a synonym for 'version' #2968, #3017 (@ttaylorr)
981
+ * test: ensure that git-mergetool(1) works with large files #2939 (@ttaylorr)
982
+ * README.md: note the correct PackageCloud URL #2960 (@ttaylorr)
983
+ * README.md: mention note about `git lfs track` retroactively #2948 (@ttaylorr)
984
+ * README.md: reorganize into Core Team, Alumni #2941 (@ttaylorr)
985
+ * README.md: :nail_care: #2942 (@ttaylorr)
986
+ * circle.yml: upgrade to 'version: 2' syntax #2928 (@ttaylorr)
987
+ * Use unique repo name for tests that require credentials. #2901 (@QuLogic)
988
+
989
+ ## 2.4.0 (2 March, 2018)
990
+
991
+ This release introduces a rewrite of the underlying file matching engine,
992
+ expands the API to include relevant refspecs for individual requests,
993
+ standardizes the progress output among commands, and more.
994
+
995
+ Please note: in the next MAJOR release (v3.0.0) the semantic meaning behind
996
+ `--include` and `--exclude` flags will change. As the details of exactly which
997
+ existing patterns will no longer function as previously are known, we will
998
+ indicate them here. Any `--include` or `--exclude` patterns used in v2.3.0 or
999
+ earlier are expected to work as previously in this release.
1000
+
1001
+ This release would not be possible without the open-source community.
1002
+ Specifically, we would like to thank:
1003
+
1004
+ - @larsxschneider: for contributing fixes to the filter operation in `git lfs
1005
+ fsck`, and `git lfs prune`, as well as the bug report leading to the
1006
+ filepathfilter changes.
1007
+ - @yfronto: for adding new Linux release targets.
1008
+ - @stffabi: for adding support for NTLM with SSPI on Windows.
1009
+ - @jeffreydwalter: for fixing memory alignment issues with `sync/atomic` on
1010
+ 32-bit architectures.
1011
+ - @b4mboo: for adding a LFS configuration key to the list of safe configuration
1012
+ options.
1013
+
1014
+ Without the aforementioned indviduals, this release would not have been
1015
+ possible. Thank you!
1016
+
1017
+ ### Features
1018
+
1019
+ * __Support wildmatch-compliant options in `--include`, `--exclude`__
1020
+ * filepathfilter: implement using wildmatch #2875 (@ttaylorr)
1021
+ * test: add wildmatch migration tests #2888 (@larsxschneider, @ttaylorr)
1022
+ * __Expand the specification to include relevant refspecs__
1023
+ * verify locks against each ref being pushed #2706 (@technoweenie)
1024
+ * Batch send refspec take 2 #2809 (@technoweenie)
1025
+ * Run 1 TransferQueue per uploaded ref #2806 (@technoweenie)
1026
+ * Locks/verify: full refspec #2722 (@technoweenie)
1027
+ * send remote refspec for the other lock commands #2773 (@technoweenie)
1028
+ * __Standardize progress meter output and implementation__
1029
+ * tq: standardized progress meter formatting #2811 (@ttaylorr)
1030
+ * commands/fetch: unify formatting #2758 (@ttaylorr)
1031
+ * commands/prune: unify formatting #2757 (@ttaylorr)
1032
+ * progress: use git/githistory/log package for formatting #2732 (@ttaylorr)
1033
+ * progress: remove `*progress.Meter` #2762 (@ttaylorr)
1034
+ * tasklog: teach `*Logger` how to enqueue new `*SimpleTask`'s #2767 (@ttaylorr)
1035
+ * progress: remove spinner.go #2759 (@ttaylorr)
1036
+ * __Teach new flags, functionality to `git lfs ls-files`__
1037
+ * commands: teach '--all' to `git lfs ls-files` #2796 (@ttaylorr)
1038
+ * commands/ls-files: show cached, tree-less LFS objects #2795 (@ttaylorr)
1039
+ * commands/ls-files: add --include, --exclude #2793 (@ttaylorr)
1040
+ * commands/ls-files: add '--size' flag #2764 (@ttaylorr)
1041
+ * __Add new flags, functionality to `git lfs migrate`__
1042
+ * commands/migrate: support '^'-prefix refspec in arguments #2785 (@ttaylorr)
1043
+ * commands/migrate: add '--skip-fetch' for offline migrations #2738 (@ttaylorr)
1044
+ * git: prefer sending revisions over STDIN than arguments #2739 (@ttaylorr)
1045
+ * __Release to new operating systems__
1046
+ * release lfs for ubuntu/artful too #2704 (@technoweenie)
1047
+ * Adding Mint Sylvia to packagecloud.rb script #2829 (@yfronto)
1048
+ * __New functionality in package `lfsapi`__
1049
+ * NTLM authentication with SSPI on windows #2871 (@stffabi)
1050
+ * lfsapi/auth: teach DoWithAuth to respect http.extraHeaders #2733 (@ttaylorr)
1051
+ * add support for url-specific proxies #2651 (@technoweenie)
1052
+ * __Code cleanup in git.Config, package `localstorage`__
1053
+ * Tracked remote #2700 (@technoweenie)
1054
+ * Replace git.Config #2692 (@technoweenie)
1055
+ * Replace localstorage #2689 (@technoweenie)
1056
+ * Remove last global config #2687 (@technoweenie)
1057
+ * Git config refactor #2676 (@technoweenie)
1058
+
1059
+ ### Bugs
1060
+
1061
+ * all: fix 32-bit alignment issues with `sync/atomic` #2883 (@ttaylorr)
1062
+ * all: memory alignment issues on 32-bit systems. #2880 (@jeffreydwalter)
1063
+ * command/migrate: don't migrate remote references in bare repositories #2769 (@ttaylorr)
1064
+ * commands/ls-files: behave correctly before initial commit #2794 (@ttaylorr)
1065
+ * commands/migrate: allow for ambiguous references in migrations #2734 (@ttaylorr)
1066
+ * commands: fill in missing printf arg #2678 (@technoweenie)
1067
+ * config: Add `lfs.locksverify` to safe keys. #2797 (@b4mboo)
1068
+ * don't replace pointers with objects if clean filter is not configured #2626 (@technoweenie)
1069
+ * fsck: attach a filter to exclude unfetched items from fsck #2847 (@larsxschneider)
1070
+ * git/githistory: copy entries from cache, elsewhere #2884 (@ttaylorr)
1071
+ * git/githistory: migrate annotated tags correctly #2780 (@ttaylorr)
1072
+ * git/odb: don't print extra newline after commit message #2784 (@ttaylorr)
1073
+ * git/odb: extract identifiers from commits verbatim #2751 (@wsprent)
1074
+ * git/odb: implement parsing for annotated `*Tag`'s #2778 (@ttaylorr)
1075
+ * git/odb: retain newlines when parsing commit messages #2786 (@ttaylorr)
1076
+ * lfs: PointerScanner is nil after error, so don't close #2699 (@technoweenie)
1077
+ * lfsapi: Cred helper improvements #2695 (@technoweenie)
1078
+ * lfsapi: retry requests changing access from none IF Auth header is empty #2621 (@technoweenie)
1079
+ * prune: always prune excluded paths #2851 (@larsxschneider)
1080
+ * status: fix incorrect formatting with unpushed objects #2746 (@ttaylorr)
1081
+ * tasklog: don't drop updates in PercentageTask #2755 (@ttaylorr)
1082
+ * test: Fix integration test early exit #2735 (@technoweenie)
1083
+ * test: generate random repo names with fs-safe characters #2698 (@technoweenie)
1084
+
1085
+ ### Misc
1086
+
1087
+ * all: Nitpicks #2821 (@technoweenie)
1088
+ * all: introduce package 'tlog' #2747 (@ttaylorr)
1089
+ * all: remove CLA #2870 (@MikeMcQuaid)
1090
+ * build: Specify the embedded Windows icon as part of versioninfo.json #2770 (@sschuberth)
1091
+ * config,test: Testlib no global config #2709 (@mathstuf)
1092
+ * config: add PushRemote() for checking `branch.*.pushRemote` and `remote.pushDefault` first #2715 (@technoweenie)
1093
+ * docs: Added documentation for git-lfs-ls-files' `*/-` output. #2719 (@bilke)
1094
+ * docs: Uninstall man page improvements #2730 (@dpursehouse)
1095
+ * docs: Update usage info for post-checkout #2830 (@proinsias)
1096
+ * docs: add 'git lfs prune' to main man page #2849 (@larsxschneider)
1097
+ * docs: use consistent casing for Git #2850 (@larsxschneider)
1098
+ * git/githistory: have `*RefUpdater` hold `*odb.ObjectDatabase` reference #2779 (@ttaylorr)
1099
+ * progress: move CopyCallback (& related) to package 'tools' #2749 (@ttaylorr)
1100
+ * progress: move `*progressLogger` implementation to package 'tools' #2750 (@ttaylorr)
1101
+ * refspec docs #2820 (@technoweenie)
1102
+ * script/test: run 'go tool vet' during testing #2788 (@ttaylorr)
1103
+ * tasklog: introduce `*SimpleTask` #2756 (@ttaylorr)
1104
+ * test: Ignore comment attr lines #2708 (@mathstuf)
1105
+ * test: Wait longer for test lfs server to start. #2716 (@QuLogic)
1106
+ * test: ensure commented attr lines are ignored #2736 (@ttaylorr)
1107
+ * tools/humanize: add 'FormatByteRate' to format transfer speed #2810 (@ttaylorr)
1108
+ * vendor: update 'xeipuuv/gojsonpointer' #2846 (@ttaylorr)
1109
+
1110
+ ## 2.3.4 (18 October, 2017)
1111
+
1112
+ ### Features
1113
+
1114
+ * 'git lfs install' updates filters with 'skip-smudge' option #2673 (@technoweenie)
1115
+
1116
+ ### Bugs
1117
+
1118
+ * FastWalkGitRepo: limit number of concurrent goroutines #2672 (@technoweenie)
1119
+ * handle scenario where multiple configuration values exist in ~/.gitconfig #2659 (@shiftkey)
1120
+
1121
+ ## 2.3.3 (9 October, 2017)
1122
+
1123
+ ### Bugs
1124
+
1125
+ * invoke lfs for 'git update-index', fixing 'status' issues #2647 (@technoweenie)
1126
+ * cache http credential helper output by default #2648 (@technoweenie)
1127
+
1128
+ ## 2.3.2 (3 October, 2017)
1129
+
1130
+ ### Features
1131
+
1132
+ * bump default activity timeout from 10s -> 30s #2632 (@technoweenie)
1133
+
1134
+ ### Bugs
1135
+
1136
+ * ensure files are marked readonly after unlocking by ID #2642 (@technoweenie)
1137
+ * add files to index with path relative to current dir #2641 (@technoweenie)
1138
+ * better Netrc errors #2633 (@technoweenie)
1139
+ * only use askpass if credential.helper is not configured #2637 (@technoweenie)
1140
+ * convert backslash to slash when writing to .gitattributes #2625 (@technoweenie)
1141
+
1142
+ ### Misc
1143
+
1144
+ * only copy req headers if there are git-configured extra headers #2622 (@technoweenie)
1145
+ * update tracerx to add timestamps #2620 (@rubyist)
1146
+
1147
+ ## 2.3.1 (27 September, 2017)
1148
+
1149
+ ### Features
1150
+
1151
+ * add support for SSH_ASKPASS #2609 (@technoweenie)
1152
+ * `git lfs migrate --verbose` option #2610 (@technoweenie)
1153
+ * Support standalone custom transfer based on API URL prefix match #2590 (@sprohaska)
1154
+
1155
+ ### Bugs
1156
+
1157
+ * Improve invalid URL error messages #2614 (@technoweenie)
1158
+ * Fix double counting progress bug #2608 (@technoweenie)
1159
+ * trim whitespace from GIT_ASKPASS provided passwords #2607 (@technoweenie)
1160
+ * remove mmap usage in Packfile reader #2600 (@technoweenie)
1161
+ * `git lfs clone`: don't fetch for unborn repositories #2598 (@shiftkey)
1162
+
1163
+ ### Misc
1164
+
1165
+ * Windows Installer fixes:
1166
+ * Show proper icon in add/remove programs list #2585 (@shiftkey)
1167
+ * Make the Inno Setup installer script explicitly check for the binaries #2588 (@sschuberth)
1168
+ * Improve compile-win-installer-unsigned.bat a bit #2586 (@sschuberth)
1169
+ * Update migrate docs example for multiple file types #2596 (@technoweenie)
1170
+
1171
+ ## 2.3.0 (14 September, 2017)
1172
+
1173
+ Git LFS v2.3.0 includes performance optimizations for the `git-lfs-migrate(1)`
1174
+ and `git-clone(1)` commands, new features, bug-fixes, and more.
1175
+
1176
+ This release was made possible by contributors to Git LFS. Specifically:
1177
+
1178
+ - @aleb: added support for "standalone" transfer agents, for using `rsync(1)`
1179
+ and similar with Git LFS.
1180
+ - @bozaro: added support for custom `.git/lfs/objects` directories via the
1181
+ `lfs.storage` configuration option.
1182
+ - @larsxschneider: fixed a recursive process leak when shelling out to Git,
1183
+ added new features to `git lfs ls-files`, extra information in error
1184
+ messages used for debugging, documentation changes and more.
1185
+ - @mathstuf: contributed a documentation change clarifying LFS's handling of
1186
+ empty pointer files.
1187
+ - @rudineirk and @andyneff: updated our release process to build packages for
1188
+ fedora/26.
1189
+ - @ssgelm: ensured that LFS is able to be released on Ubuntu Universe.
1190
+
1191
+ To everyone who has contributed to this or previous releases of Git LFS: Thank
1192
+ you!
1193
+
1194
+ ### Features
1195
+
1196
+ * git/odb/pack: improve `git lfs migrate` performance
1197
+ * git/odb/pack: introduce packed object reassembly #2550 #2551 #2552 #2553 #2554 (@ttaylorr)
1198
+ * git/odb/pack: teach packfile index entry lookups #2420 #2421 #2422 #2423 #2437 #2441 #2461 (@ttaylorr)
1199
+ * git/{odb,githistory}: don't write unchanged objects #2541 (@ttaylorr)
1200
+ * commands: improve `git clone` performance with 'delay' capability #2511 #2469 #2468 #2471 #2467 #2476 #2483 (@ttaylorr)
1201
+ * commands: mark `git lfs clone` as deprecated #2526 (@ttaylorr)
1202
+ * commands: enable `lfs.allowincompletepush` by default #2574 (@technoweenie)
1203
+ * commands: teach '--everything' to `git lfs migrate` #2558 (@ttaylorr)
1204
+ * commands: teach `git lfs ls-files` a '--debug' option #2540 (@larsxschneider)
1205
+ * commands,lfs: warn on 4gb size conversion during clean #2510 #2507 #2459 (@ttaylorr)
1206
+ * lfsapi/creds: teach about GIT_ASKPASS and core.askpass #2500 #2578 (@ttaylorr)
1207
+ * commands/status: indicate missing objects #2438 (@ttaylorr)
1208
+ * Allow using custom transfer agents directly #2429 (@aleb)
1209
+ * Add `lfs.storage` parameter for overriding LFS storage location #2023 (@bozaro)
1210
+ * lfsapi: enable credential caching by default #2508 (@ttaylorr)
1211
+ * commands/install: teach `--manual` to `git-lfs-install(1)` #2410 (@ttaylorr)
1212
+
1213
+ ### Bugs
1214
+
1215
+ * migrate: fix migrations with subdirectories in '--include' or '--exclude' #2485 (@ttaylorr)
1216
+ * commands/migrate: fix hardlinking issue when different filesystem is mounted at `/tmp` #2566 (@ttaylorr)
1217
+ * commands: make `git lfs migrate` fetch ref updates before migrating #2538 (@ttaylorr)
1218
+ * commands: remove '--above=1mb' default from `git lfs migrate info` #2460 (@ttaylorr)
1219
+ * filepathfilter: fix `HasPrefix()` when no '--include' filters present #2579 (@technoweenie)
1220
+ * git/githistory/log: fix race condition with `git/githistory/log` tests #2495 (@ttaylorr)
1221
+ * git/odb: fix closing object database test #2457 (@ttaylorr)
1222
+ * git/githistory: only update local refs after migrations #2559 (@ttaylorr)
1223
+ * locking: fix unlocking files not removing write flag #2514 (@ttaylorr)
1224
+ * locks: fix unlocking files in a symlinked directory #2505 (@ttaylorr)
1225
+ * commands: teach `git lfs unlock` to ignore status errs in appropriate conditions #2475 (@ttaylorr)
1226
+ * git: expand `GetAttributePaths` check to include non-LFS lockables #2528 (@ttaylorr)
1227
+ * fix multiple `git update-index` invocations #2531 (@larsxschneider)
1228
+ * tools: fix SSH credential cacher expiration #2530 (@ttaylorr)
1229
+ * lfsapi: fix read/write race condition in credential cacher #2493 (@ttaylorr)
1230
+ * lfs: fix cleaning contents larger than 1024 bytes over stdin #2488 (@ttaylorr)
1231
+ * fsck only scans current version of objects #2049 (@TheJare)
1232
+ * progress: fix writing updates to `$GIT_LFS_PROGRESS` #2465 (@ttaylorr)
1233
+ * commands/track: resolve symlinks before comparing attr paths #2463 (@ttaylorr)
1234
+ * test: ensure that empty pointers are empty #2458 (@ttaylorr)
1235
+ * git/githistory/log: prevent 'NaN' showing up in `*PercentageTask` #2455 (@ttaylorr)
1236
+ * tq: teach Batch() API to retry itself after io.EOF's #2516 (@ttaylorr)
1237
+
1238
+ ### Misc
1239
+
1240
+ * script/packagecloud: release LFS on Fedora/26 #2443 #2509 (@rudineirk, @andyneff)
1241
+ * git/githistory: change "Rewriting commits" when not updating refs #2577 (@ttaylorr)
1242
+ * commands: print IP addresses in error logs #2570 (@larsxschneider)
1243
+ * commands: print current time in UTC to error logs #2571 (@larsxschneider)
1244
+ * commands: Disable lock verification when using a standalone custom-tr… #2499 (@aleb)
1245
+ * docs/man: update `git lfs migrate` documentation with EXAMPLES #2580 (@technoweenie)
1246
+ * docs/man: recommend global per-host locking config #2546 (@larsxschneider)
1247
+ * commands: use transfer queue's batch size instead of constant #2529 (@ttaylorr)
1248
+ * add function to invoke Git with disabled LFS filters #2453 (@larsxschneider)
1249
+ * config: warn on unsafe keys in `.lfsconfig` #2502 (@ttaylorr)
1250
+ * glide: remove unused dependencies #2501 (@ttaylorr)
1251
+ * script/build: pass '-{ld,gc}flags' to compiler, if given #2462 (@ttaylorr)
1252
+ * spec: mention that an empty file is its own LFS pointer #2449 (@mathstuf)
1253
+ * Update to latest version of github.com/pkg/errors #2426 (@ssgelm)
1254
+ * Update gitignore to add some temp files that get created when building debs #2425 (@ssgelm)
1255
+ * lfs: indent contents of `git lfs install`, `update` #2392 (@ttaylorr)
1256
+ * tq: increase default `lfs.concurrenttransfers` to 8 #2506 (@ttaylorr)
1257
+
1258
+ ## 2.2.1 (10 July, 2017)
1259
+
1260
+ ### Bugs
1261
+
1262
+ * git lfs status --json only includes lfs files #2374 (@asottile)
1263
+ * git/odb: remove temporary files after migration #2388 (@ttaylorr)
1264
+ * git/githistory: fix hanging on empty set of commits #2383 (@ttaylorr)
1265
+ * migrate: don't checkout HEAD on bare repositories #2389 (@ttaylorr)
1266
+ * git/odb: prevent cross-volume link error when saving objects #2382 (@ttaylorr)
1267
+ * commands: only pass --jobs to `git clone` if set #2369 (@technoweenie)
1268
+
1269
+ ### Misc
1270
+
1271
+ * lfs: trace hook install, uninstall, upgrade #2393 (@ttaylorr)
1272
+ * vendor: remove github.com/cheggaaa/pb #2386 (@ttaylorr)
1273
+ * Use FormatBytes from git-lfs/tools/humanize instead of cheggaaa/pb #2377 (@ssgelm)
1274
+
1275
+
1276
+ ## 2.2.0 (27 June, 2017)
1277
+
1278
+ Git LFS v2.2.0 includes bug fixes, minor features, and a brand new `migrate`
1279
+ command. The `migrate` command rewrites commits, converting large files from
1280
+ Git blobs to LFS objects. The most common use case will fix a git push rejected
1281
+ for having large blobs:
1282
+
1283
+ ```
1284
+ $ git push origin master
1285
+ # ...
1286
+ remote: error: file a.psd is 1.2 gb; this exceeds github's file size limit of 100.00 mb
1287
+ to github.com:ttaylorr/demo.git
1288
+ ! [remote rejected] master -> master (pre-receive hook declined)
1289
+ error: failed to push some refs to 'git@github.com:ttaylorr/demo.git'
1290
+
1291
+ $ git lfs migrate info
1292
+ *.psd 1.2 GB 27/27 files(s) 100%
1293
+
1294
+ $ git lfs migrate import --include="*.psd"
1295
+ migrate: Sorting commits: ..., done
1296
+ migrate: Rewriting commits: 100% (810/810), done
1297
+ master f18bb746d44e8ea5065fc779bb1acdf3cdae7ed8 -> 35b0fe0a7bf3ae6952ec9584895a7fb6ebcd498b
1298
+ migrate: Updating refs: ..., done
1299
+
1300
+ $ git push origin
1301
+ Git LFS: (1 of 1 files) 1.2 GB / 1.2 GB
1302
+ # ...
1303
+ To github.com:ttaylorr/demo.git
1304
+ * [new branch] master -> master
1305
+ ```
1306
+
1307
+ The `migrate` command has detailed options described in the `git-lfs-migrate(1)`
1308
+ man page. Keep in mind that this is the first pass at such a command, so we
1309
+ expect there to be bugs and performance issues (especially on long git histories).
1310
+ Future updates to the command will be focused on improvements to allow full
1311
+ LFS transitions on large repositories.
1312
+
1313
+ ### Features
1314
+
1315
+ * commands: add git-lfs-migrate(1) 'import' subcommand #2353 (@ttaylorr)
1316
+ * commands: add git-lfs-migrate(1) 'info' subcommand #2313 (@ttaylorr)
1317
+ * Implement status --json #2311 (@asottile)
1318
+ * commands/uploader: allow incomplete pushes #2199 (@ttaylorr)
1319
+
1320
+ ### Bugs
1321
+
1322
+ * Retry on timeout or temporary errors #2312 (@jakub-m)
1323
+ * commands/uploader: don't verify locks if verification is disabled #2278 (@ttaylorr)
1324
+ * Fix tools.TranslateCygwinPath() on MSYS #2277 (@raleksandar)
1325
+ * commands/clone: add new flags since Git 2.9 #2251, #2252 (@ttaylorr)
1326
+ * Make pull return non-zero error code when some downloads failed #2237 (@seth2810)
1327
+ * tq/basic_download: guard against nil HTTP response #2227 (@ttaylorr)
1328
+ * Bugfix: cannot push to scp style URL #2198 (@jiangxin)
1329
+ * support lfs.<url>.* values where url does not include .git #2192 (@technoweenie)
1330
+ * commands: fix logged error not interpolating format qualifiers #2228 (@ttaylorr)
1331
+ * commands/help: print helptext to stdout for consistency with Git #2210 (@ttaylorr)
1332
+
1333
+ ### Misc
1334
+
1335
+ * Minor cleanups in help index #2248 (@dpursehouse)
1336
+ * Add git-lfs-lock and git-lfs-unlock to help index #2232 (@dpursehouse)
1337
+ * packagecloud: add Debian 9 entry to formatted list #2211 (@ttaylorr)
1338
+ * Update Xenial is to use stretch packages #2212 (@andyneff)
1339
+
1340
+ ## 2.1.1 (19 May, 2017)
1341
+
1342
+ Git LFS v2.1.1 ships with bug fixes and a security patch fixing a remote code
1343
+ execution vulnerability exploitable by setting a SSH remote via your
1344
+ repository's `.lfsconfig` to contain the string "-oProxyCommand". This
1345
+ vulnerability is only exploitable if an attacker has write access to your
1346
+ repository, or you clone a repository with a `.lfsconfig` file containing that
1347
+ string.
1348
+
1349
+ ### Bugs
1350
+
1351
+ * Make pull return non-zero error code when some downloads failed #2245 (@seth2810, @technoweenie)
1352
+ * lfsapi: support cross-scheme redirection #2243 (@ttaylorr)
1353
+ * sanitize ssh options parsed from ssh:// url #2242 (@technoweenie)
1354
+ * filepathfilter: interpret as .gitignore syntax #2238 (@technoweenie)
1355
+ * tq/basic_download: guard against nil HTTP response #2229 (@ttaylorr)
1356
+ * commands: fix logged error not interpolating format qualifiers #2230 (@ttaylorr)
1357
+
1358
+ ### Misc
1359
+
1360
+ * release: backport Debian 9-related changes #2244 (@ssgelm, @andyneff, @ttaylorr)
1361
+ * Add git-lfs-lock and git-lfs-unlock to help index #2240 (@dpursehouse)
1362
+ * config: allow multiple environments when calling config.Unmarshal #2224 (@ttaylorr)
1363
+
1364
+ ## 2.1.0 (28 April, 2017)
1365
+
1366
+ ### Features
1367
+
1368
+ * commands/track: teach --no-modify-attrs #2175 (@ttaylorr)
1369
+ * commands/status: add blob info to each entry #2070 (@ttaylorr)
1370
+ * lfsapi: improve HTTP request/response stats #2184 (@technoweenie)
1371
+ * all: support URL-style configuration lookups (@ttaylorr)
1372
+ * commands: support URL-style lookups for `lfs.{url}.locksverify` #2162 (@ttaylorr)
1373
+ * lfsapi: support URL-style lookups for `lfs.{url}.access` #2161 (@ttaylorr)
1374
+ * lfsapi/certs: use `*config.URLConfig` to do per-host config lookup #2160 (@ttaylorr)
1375
+ * lfsapi: support for http.<url>.extraHeader #2159 (@ttaylorr)
1376
+ * config: add prefix to URLConfig type #2158 (@ttaylorr)
1377
+ * config: remove dependency on lfsapi package #2156 (@ttaylorr)
1378
+ * config: support multi-value lookup on URLConfig #2154 (@ttaylorr)
1379
+ * lfsapi: initial httpconfig type #1912 (@technoweenie, @ttaylorr)
1380
+ * lfsapi,tq: relative expiration support #2130 (@ttaylorr)
1381
+
1382
+ ### Bugs
1383
+
1384
+ * commands: include error in `LoggedError()` #2179 (@ttaylorr)
1385
+ * commands: cross-platform log formatting to files #2178 (@ttaylorr)
1386
+ * locks: cross-platform path normalization #2139 (@ttaylorr)
1387
+ * commands,locking: don't disable locking for auth errors during verify #2110 (@ttaylorr)
1388
+ * commands/status: show partially staged files twice #2067 (@ttaylorr)
1389
+
1390
+ ### Misc
1391
+
1392
+ * all: build on Go 1.8.1 #2145 (@ttaylorr)
1393
+ * Polish custom-transfers.md #2171 (@sprohaska)
1394
+ * commands/push: Fix typo in comment #2170 (@sprohaska)
1395
+ * config: support multi-valued config entries #2152 (@ttaylorr)
1396
+ * smudge: use localstorage temp directory, not system #2140 (@ttaylorr)
1397
+ * locking: send locks limit to server #2107 (@ttaylorr)
1398
+ * lfs: extract `DiffIndexScanner` #2035 (@ttaylorr)
1399
+ * status: use DiffIndexScanner to populate results #2042 (@ttaylorr)
1400
+
1401
+ ## 2.0.2 (29 March, 2017)
1402
+
1403
+ ### Features
1404
+
1405
+ * ssh auth and credential helper caching #2094 (@ttaylorr)
1406
+ * commands,tq: specialized logging for missing/corrupt objects #2085 (@ttaylorr)
1407
+ * commands/clone: install repo-level hooks after `git lfs clone` #2074
1408
+ * (@ttaylorr)
1409
+ * debian: Support building on armhf and arm64 #2089 (@p12tic)
1410
+
1411
+ ### Bugs
1412
+
1413
+ * commands,locking: don't disable locking for auth errors during verify #2111
1414
+ * (@ttaylorr)
1415
+ * commands: show real error while cleaning #2096 (@ttaylorr)
1416
+ * lfsapi/auth: optionally prepend an empty scheme to Git remote URLs #2092
1417
+ * (@ttaylorr)
1418
+ * tq/verify: authenticate verify requests if required #2084 (@ttaylorr)
1419
+ * commands/{,un}track: correctly escape '#' and ' ' characters #2079 (@ttaylorr)
1420
+ * tq: use initialized lfsapi.Client instances in transfer adapters #2048
1421
+ * (@ttaylorr)
1422
+
1423
+ ### Misc
1424
+
1425
+ * locking: send locks limit to server #2109 (@ttaylorr)
1426
+ * docs: update configuration documentation #2097 #2019 #2102 (@terrorobe)
1427
+ * docs: update locking API documentation #2099 #2101 (@dpursehouse)
1428
+ * fixed table markdown in README.md #2095 (@ZaninAndrea)
1429
+ * remove the the duplicate work #2098 (@grimreaper)
1430
+
1431
+ ## 2.0.1 (6 March, 2017)
1432
+
1433
+ ### Misc
1434
+
1435
+ * tq: fallback to `_links` if present #2007 (@ttaylorr)
1436
+
1437
+ ## 2.0.0 (1 March, 2017)
1438
+
1439
+ Git LFS v2.0.0 brings a number of important bug fixes, some new features, and
1440
+ a lot of internal refactoring. It also completely removes old APIs that were
1441
+ deprecated in Git LFS v0.6.
1442
+
1443
+ ### Locking
1444
+
1445
+ File Locking is a brand new feature that lets teams communicate when they are
1446
+ working on files that are difficult to merge. Users are not able to edit or push
1447
+ changes to any files that are locked by other users. While the feature has been
1448
+ in discussion for a year, we are releasing a basic Locking implementation to
1449
+ solicit feedback from the community.
1450
+
1451
+ ### Transfer Queue
1452
+
1453
+ LFS 2.0 introduces a new Git Scanner, which walks a range of Git commits looking
1454
+ for LFS objects to transfer. The Git Scanner is now asynchronous, initiating
1455
+ large uploads or downloads in the Transfer Queue immediately once an LFS object
1456
+ is found. Previously, the Transfer Queue waited until all of the Git commits
1457
+ have been scanned before initiating the transfer. The Transfer Queue also
1458
+ automatically retries failed uploads and downloads more often.
1459
+
1460
+ ### Deprecations
1461
+
1462
+ Git LFS v2.0.0 also drops support for the legacy API in v0.5.0. If you're still
1463
+ using LFS servers on the old API, you'll have to stick to v1.5.6.
1464
+
1465
+ ### Features
1466
+
1467
+ * Mid-stage locking support #1769 (@sinbad)
1468
+ * Define lockable files, make read-only in working copy #1870 (@sinbad)
1469
+ * Check that files are not uncommitted before unlock #1896 (@sinbad)
1470
+ * Fix `lfs unlock --force` on a missing file #1927 (@technoweenie)
1471
+ * locking: teach pre-push hook to check for locks #1815 (@ttaylorr)
1472
+ * locking: add `--json` flag #1814 (@ttaylorr)
1473
+ * Implement local lock cache, support querying it #1760 (@sinbad)
1474
+ * support for client certificates pt 2 #1893 (@technoweenie)
1475
+ * Fix clash between progress meter and credential helper #1886 (@technoweenie)
1476
+ * Teach uninstall cmd about --local and --system #1887 (@technoweenie)
1477
+ * Add `--skip-repo` option to `git lfs install` & use in tests #1868 (@sinbad)
1478
+ * commands: convert push, pre-push to use async gitscanner #1812 (@ttaylorr)
1479
+ * tq: prioritize transferring retries before new items #1758 (@ttaylorr)
1480
+
1481
+ ### Bugs
1482
+
1483
+ * ensure you're in the correct directory when installing #1793 (@technoweenie)
1484
+ * locking: make API requests relative to repository, not root #1818 (@ttaylorr)
1485
+ * Teach 'track' about CRLF #1914 (@technoweenie)
1486
+ * Teach 'track' how to handle empty lines in .gitattributes #1921 (@technoweenie)
1487
+ * Closing stdout pipe before function return #1861 (@monitorjbl)
1488
+ * Custom transfer terminate #1847 (@sinbad)
1489
+ * Fix Install in root problems #1727 (@technoweenie)
1490
+ * cat-file batch: read all of the bytes #1680 (@technoweenie)
1491
+ * Fixed file paths on cygwin. #1820, #1965 (@creste, @ttaylorr)
1492
+ * tq: decrement uploaded bytes in basic_upload before retry #1958 (@ttaylorr)
1493
+ * progress: fix never reading bytes with sufficiently small files #1955 (@ttaylorr)
1494
+ * tools: fix truncating string fields between balanced quotes in GIT_SSH_COMMAND #1962 (@ttaylorr)
1495
+ * commands/smudge: treat empty pointers as empty files #1954 (@ttaylorr)
1496
+
1497
+ ### Misc
1498
+
1499
+ * all: build using Go 1.8 #1952 (@ttaylorr)
1500
+ * Embed the version information into the Windows executable #1689 (@sschuberth)
1501
+ * Add more meta-data to the Windows installer executable #1752 (@sschuberth)
1502
+ * docs/api: object size must be positive #1779 (@ttaylorr)
1503
+ * build: omit DWARF tables by default #1937 (@ttaylorr)
1504
+ * Add test to prove set operator [] works in filter matching #1768 (@sinbad)
1505
+ * test: add ntlm integration test #1840 (@technoweenie)
1506
+ * lfs/tq: completely remove legacy support #1686 (@ttaylorr)
1507
+ * remove deprecated features #1679 (@technoweenie)
1508
+ * remove legacy api support #1629 (@technoweenie)
1509
+
1510
+ ## 1.5.6 (16 February, 2017)
1511
+
1512
+ ## Bugs
1513
+
1514
+ * Spool malformed pointers to avoid deadlock #1932 (@ttaylorr)
1515
+
1516
+ ## 1.5.5 (12 January, 2017)
1517
+
1518
+ ### Bugs
1519
+
1520
+ * lfs: only buffer first 1k when creating a CleanPointerError #1856 (@ttaylorr)
1521
+
1522
+ ## 1.5.4 (27 December, 2016)
1523
+
1524
+ ### Bugs
1525
+
1526
+ * progress: guard negative padding width, panic in `strings.Repeat` #1807 (@ttaylorr)
1527
+ * commands,lfs: handle malformed pointers #1805 (@ttaylorr)
1528
+
1529
+ ### Misc
1530
+
1531
+ * script/packagecloud: release LFS on fedora/25 #1798 (@ttaylorr)
1532
+ * backport filepathfilter to v1.5.x #1782 (@technoweenie)
1533
+
1534
+ ## 1.5.3 (5 December, 2016)
1535
+
1536
+ ### Bugs
1537
+
1538
+ * Support LFS installations at filesystem root #1732 (@technoweenie)
1539
+ * git: parse filter process header values containing '=' properly #1733 (@larsxschneider)
1540
+ * Fix SSH endpoint parsing #1738 (@technoweenie)
1541
+
1542
+ ### Misc
1543
+
1544
+ * build: release on Go 1.7.4 #1741 (@ttaylorr)
1545
+
1546
+ ## 1.5.2 (22 November, 2016)
1547
+
1548
+ ### Features
1549
+
1550
+ * Release LFS on Fedora 24 #1685 (@technoweenie)
1551
+
1552
+ ### Bugs
1553
+
1554
+ * filter-process: fix reading 1024 byte files #1708 (@ttaylorr)
1555
+ * Support long paths on Windows #1705 (@technoweenie)
1556
+
1557
+ ### Misc
1558
+
1559
+ * filter-process: exit with error if we detect an unknown command from Git #1707 (@ttaylorr)
1560
+ * vendor: remove contentaddressable lib #1706 (@technoweenie)
1561
+
1562
+ ## 1.5.1 (18 November, 2016)
1563
+
1564
+ ### Bugs
1565
+
1566
+ * cat-file --batch parser errors on non-lfs git blobs #1680 (@technoweenie)
1567
+
1568
+ ## 1.5.0 (17 November, 2016)
1569
+
1570
+ ### Features
1571
+
1572
+ * Filter Protocol Support #1617 (@ttaylorr, @larsxschneider)
1573
+ * Fast directory walk #1616 (@sinbad)
1574
+ * Allow usage of proxies even when contacting localhost #1605 (@chalstrick)
1575
+
1576
+ ### Bugs
1577
+
1578
+ * start reading off the Watch() channel before sending any input #1671 (@technoweenie)
1579
+ * wait for remote ref commands to exit before returning #1656 (@jjgod, @technoweenie)
1580
+
1581
+ ### Misc
1582
+
1583
+ * rewrite new catfilebatch implementation for upcoming gitscanner pkg #1650 (@technoweenie)
1584
+ * refactor testutils.FileInput so it's a little more clear #1666 (@technoweenie)
1585
+ * Update the lfs track docs #1642 (@technoweenie)
1586
+ * Pre push tracing #1638 (@technoweenie)
1587
+ * Remove `AllGitConfig()` #1634 (@technoweenie)
1588
+ * README: set minimal required Git version to 1.8.5 #1636 (@larsxschneider)
1589
+ * 'smudge --info' is deprecated in favor of 'ls-files' #1631 (@technoweenie)
1590
+ * travis-ci: test GitLFS with ancient Git version #1626 (@larsxschneider)
1591
+
1592
+ ## 1.4.4 (24 October, 2016)
1593
+
1594
+ ### Bugs
1595
+
1596
+ * transfer: more descriptive "expired at" errors #1603 (@ttaylorr)
1597
+ * commands,lfs/tq: Only send unique OIDs to the Transfer Queue #1600 (@ttaylorr)
1598
+ * Expose the result message in case of an SSH authentication error #1599 (@sschuberth)
1599
+
1600
+ ### Misc
1601
+
1602
+ * AppVeyor: Do not build branches with open pull requests #1594 (@sschuberth)
1603
+ * Update .mailmap #1593 (@dpursehouse)
1604
+
1605
+ ## 1.4.3 (17 October, 2016)
1606
+
1607
+ ### Bugs
1608
+
1609
+ * lfs/tq: use extra arguments given to tracerx.Printf #1583 (@ttaylorr)
1610
+ * api: correctly print legacy API warning to Stderr #1582 (@ttaylorr)
1611
+
1612
+ ### Misc
1613
+
1614
+ * Test storage retries #1585 (@ttaylorr)
1615
+ * Test legacy check retries behavior #1584 (@ttaylorr)
1616
+ * docs: Fix a link to the legacy API #1579 (@sschuberth)
1617
+ * Add a .mailmap file #1577 (@sschuberth)
1618
+ * Add a large wizard image to the Windows installer #1575 (@sschuberth)
1619
+ * Appveyor badge #1574 (@ttaylorr)
1620
+
1621
+ ## 1.4.2 (10 October, 2016)
1622
+
1623
+ v1.4.2 brings a number of bug fixes and usability improvements to LFS. This
1624
+ release also adds support for multiple retries within the transfer queue, making
1625
+ transfers much more reliable. To enable this feature, see the documentation for
1626
+ `lfs.transfer.maxretries` in `git-lfs-config(5)`.
1627
+
1628
+ We'd also like to extend a special thank-you to @sschuberth who undertook the
1629
+ process of making LFS's test run on Windows through AppVeyor. Now all pull
1630
+ requests run tests on macOS, Linux, and Windows.
1631
+
1632
+ ### Features
1633
+
1634
+ * lfs: warn on usage of the legacy API #1564 (@ttaylorr)
1635
+ * use filepath.Clean() when comparing filenames to include/exclude patterns #1565 (@technoweenie)
1636
+ * lfs/transfer_queue: support multiple retries per object #1505, #1528, #1535, #1545 (@ttaylorr)
1637
+ * Automatically upgrade old filters instead of requiring ��force #1497 (@sinbad)
1638
+ * Allow lfs.pushurl in .lfsconfig #1489 (@technoweenie)
1639
+
1640
+ ### Bugs
1641
+
1642
+ * Use "sha256sum" on Windows #1566 (@sschuberth)
1643
+ * git: ignore non-root wildcards #1563 (@ttaylorr)
1644
+ * Teach status to recognize multiple files with identical contents #1550 (@ttaylorr)
1645
+ * Status initial commit #1540 (@sinbad)
1646
+ * Make path comparison robust against Windows short / long path issues #1523 (@sschuberth)
1647
+ * Allow fetch to run without a remote configured #1507 (@sschuberth)
1648
+
1649
+ ### Misc
1650
+
1651
+ * travis: run tests on Go 1.7.1 #1568 (@ttaylorr)
1652
+ * Enable running tests on AppVeyor CI #1567 (@sschuberth)
1653
+ * Travis: Only install git if not installed yet #1557 (@sschuberth)
1654
+ * Windows test framework fixes #1522 (@sschuberth)
1655
+ * Simplify getting the absolute Git root directory #1518 (@sschuberth)
1656
+ * Add icons to the Windows installer #1504 (@sschuberth)
1657
+ * docs/man: reference git-lfs-pointer(1) in clean documentation #1503 (@ttaylorr)
1658
+ * Make AppVeyor CI for Windows work again #1506 (@sschuberth)
1659
+ * commands: try out RegisterCommand() #1495 (@technoweenie)
1660
+
1661
+ ## 1.4.1 (26 August, 2016)
1662
+
1663
+ ### Features
1664
+
1665
+ * retry if file download failed #1454 (@larsxschneider)
1666
+ * Support wrapped clone in current directory #1478 (@ttaylorr)
1667
+
1668
+ ### Misc
1669
+
1670
+ * Test `RetriableReader` #1482 (@ttaylorr)
1671
+
1672
+ ## 1.4.0 (19 August, 2016)
1673
+
1674
+ ### Features
1675
+
1676
+ * Install LFS at the system level when packaged #1460 (@javabrett)
1677
+ * Fetch remote urls #1451 (@technoweenie)
1678
+ * add object Authenticated property #1452 (@technoweenie)
1679
+ * add support for `url.*.insteadof` in git config #1117, #1443 (@artagnon, @technoweenie)
1680
+
1681
+ ### Bugs
1682
+
1683
+ * fix --include bug when multiple files have same lfs content #1458 (@technoweenie)
1684
+ * check the git version is ok in some key commands #1461 (@technoweenie)
1685
+ * fix duplicate error reporting #1445, #1453 (@dpursehouse, @technoweenie)
1686
+ * transfer/custom: encode "event" as lowercase #1441 (@ttaylorr)
1687
+
1688
+ ### Misc
1689
+
1690
+ * docs/man: note GIT_LFS_PROGRESS #1469 (@ttaylorr)
1691
+ * Reword the description of HTTP 509 status #1467 (@dpursehouse)
1692
+ * Update fetch include/exclude docs for pattern matching #1455 (@ralfthewise)
1693
+ * config-next: API changes to the `config` package #1425 (@ttaylorr)
1694
+ * errors-next: Contextualize error messages #1463 (@ttaylorr, @technoweenie)
1695
+ * scope commands to not leak instances of themselves #1434 (@technoweenie)
1696
+ * Transfer manifest #1430 (@technoweenie)
1697
+
1698
+ ## 1.3.1 (2 August 2016)
1699
+
1700
+ ### Features
1701
+
1702
+ * lfs/hook: teach `lfs.Hook` about `core.hooksPath` #1409 (@ttaylorr)
1703
+
1704
+ ### Bugs
1705
+
1706
+ * distinguish between empty include/exclude paths #1411 (@technoweenie)
1707
+ * Fix sslCAInfo config lookup when host in config doesn't have a trailing slash #1404 (@dakotahawkins)
1708
+
1709
+ ### Misc
1710
+
1711
+ * Use commands.Config instead of config.Config #1390 (@technoweenie)
1712
+
1713
+ ## 1.3.0 (21 July 2016)
1714
+
1715
+ ### Features
1716
+
1717
+ * use proxy from git config #1173, #1358 (@jonmagic, @LizzHale, @technoweenie)
1718
+ * Enhanced upload/download of LFS content: #1265 #1279 #1297 #1303 #1367 (@sinbad)
1719
+ * Resumable downloads using HTTP range headers
1720
+ * Resumable uploads using [tus.io protocol](http://tus.io)
1721
+ * Pluggable [custom transfer adapters](https://github.com/git-lfs/git-lfs/blob/master/docs/custom-transfers.md)
1722
+ * In git 2.9+, run "git lfs pull" in submodules after "git lfs clone" #1373 (@sinbad)
1723
+ * cmd,doc,test: teach `git lfs track --{no-touch,verbose,dry-run}` #1344 (@ttaylorr)
1724
+ * ⏳ Retry transfers with expired actions #1350 (@ttaylorr)
1725
+ * Safe track patterns #1346 (@ttaylorr)
1726
+ * Add checkout --unstaged flag #1262 (@orivej)
1727
+ * cmd/clone: add include/exclude via flags and config #1321 (@ttaylorr)
1728
+ * Improve progress reporting when files skipped #1296 (@sinbad)
1729
+ * Experimental file locking commands #1236, #1259, #1256, #1386 (@ttaylorr)
1730
+ * Implement support for GIT_SSH_COMMAND #1260 (@pdf)
1731
+ * Recognize include/exclude filters from config #1257 (@ttaylorr)
1732
+
1733
+ ### Bugs
1734
+
1735
+ * Fix bug in Windows installer under Win32. #1200 (@teo-tsirpanis)
1736
+ * Updated request.GetAuthType to handle multi-value auth headers #1379 (@VladimirKhvostov)
1737
+ * Windows fixes #1374 (@sinbad)
1738
+ * Handle artifactory responses #1371 (@ttaylorr)
1739
+ * use `git rev-list --stdin` instead of passing each remote ref #1359 (@technoweenie)
1740
+ * docs/man: move "logs" subcommands from OPTIONS to COMMANDS #1335 (@ttaylorr)
1741
+ * test/zero-len: update test for git v2.9.1 #1369 (@ttaylorr)
1742
+ * Unbreak building httputil on OpenBSD #1360 (@jasperla)
1743
+ * WIP transferqueue race fix #1255 (@technoweenie)
1744
+ * Safety check to `comands.requireStdin` #1349 (@ttaylorr)
1745
+ * Removed CentOS 5 from dockers. Fixed #1295. #1298 (@javabrett)
1746
+ * Fix 'git lfs fetch' with a sha1 ref #1323 (@omonnier)
1747
+ * Ignore HEAD ref when fetching with --all #1310 (@ttaylorr)
1748
+ * Return a fully remote ref to reduce chances of ref clashes #1248 (@technoweenie)
1749
+ * Fix reporting of `git update-index` errors in `git lfs checkout` and `git lfs pull` #1400 (@technoweenie)
1750
+
1751
+ ### Misc
1752
+
1753
+ * Added Linux Mint Sarah to package cloud script #1384 (@andyneff)
1754
+ * travis-ci: require successful tests against upcoming Git core release #1372 (@larsxschneider)
1755
+ * travis-ci: add a build job to test against upcoming versions of Git #1361 (@larsxschneider)
1756
+ * Create Makefiles for building with gccgo #1222 (@zeldin)
1757
+ * README: add @ttaylorr to core team #1332 (@ttaylorr)
1758
+ * Enforced a minimum gem version of 1.0.4 for packagecloud-ruby #1292 (@javabrett)
1759
+ * I think this should be "Once installed" and not "One installed", but … #1305 (@GabLeRoux)
1760
+ * script/test: propagate extra args to go test #1324 (@omonnier)
1761
+ * Add `lfs.basictransfersonly` option to disable non-basic transfer adapters #1299 (@sinbad)
1762
+ * Debian build vendor test excludes #1291 (@javabrett)
1763
+ * gitignore: ignore lfstest-\* files #1271 (@ttaylorr)
1764
+ * Disable gojsonschema test, causes failures when firewalls block it #1274 (@sinbad)
1765
+ * test: use noop credential helper for auth tests #1267 (@ttaylorr)
1766
+ * get git tests passing when run outside of repository #1229 (@technoweenie)
1767
+ * Package refactor no.1 #1226 (@sinbad)
1768
+ * vendor: vendor dependencies in vendor/ using Glide #1243 (@ttaylorr)
1769
+
1770
+ ## 1.2.1 (2 June 2016)
1771
+
1772
+ ### Features
1773
+
1774
+ * Add missing config details to `env` command #1217 (@sinbad)
1775
+ * Allow smudge filter to return 0 on download failure #1213 (@sinbad)
1776
+ * Add `git lfs update --manual` option & promote it on hook install fail #1182 (@sinbad)
1777
+ * Pass `git lfs clone` flags through to `git clone` correctly, respect some options #1160 (@sinbad)
1778
+
1779
+ ### Bugs
1780
+
1781
+ * Clean trailing `/` from include/exclude paths #1278 (@ttaylorr)
1782
+ * Fix problems with user prompts in `git lfs clone` #1185 (@sinbad)
1783
+ * Fix failure to return non-zero exit code when lfs install/update fails to install hooks #1178 (@sinbad)
1784
+ * Fix missing man page #1149 (@javabrett)
1785
+ * fix concurrent map read and map write #1179 (@technoweenie)
1786
+
1787
+ ### Misc
1788
+
1789
+ * Allow additional fields on request & response schema #1276 (@sinbad)
1790
+ * Fix installer error on win32. #1198 (@teo-tsirpanis)
1791
+ * Applied same -ldflags -X name value -> name=value fix #1193 (@javabrett)
1792
+ * add instructions to install from MacPorts #1186 (@skymoo)
1793
+ * Add xenial repo #1170 (@graingert)
1794
+
1795
+ ## 1.2.0 (14 April 2016)
1796
+
1797
+ ### Features
1798
+
1799
+ * netrc support #715 (@rubyist)
1800
+ * `git lfs clone` command #988 (@sinbad)
1801
+ * Support self-signed certs #1067 (@sinbad)
1802
+ * Support sslverify option for specific hosts #1081 (@sinbad)
1803
+ * Stop transferring duplicate objects on major push or fetch operations on multiple refs. #1128 (@technoweenie)
1804
+ * Touch existing git tracked files when tracked in LFS so they are flagged as modified #1104 (@sinbad)
1805
+ * Support for git reference clones #1007 (@jlehtnie)
1806
+
1807
+ ### Bugs
1808
+
1809
+ * Fix clean/smudge filter string for files starting with - #1083 (@epriestley)
1810
+ * Fix silent failure to push LFS objects when ref matches a filename in the working copy #1096 (@epriestley)
1811
+ * Fix problems with using LFS in symlinked folders #818 (@sinbad)
1812
+ * Fix git lfs push silently misbehaving on ambiguous refs; fail like git push instead #1118 (@sinbad)
1813
+ * Whitelist `lfs.*.access` config in local ~/.lfsconfig #1122 (@rjbell4)
1814
+ * Only write the encoded pointer information to Stdout #1105 (@sschuberth)
1815
+ * Use hardcoded auth from remote or lfs config when accessing the storage api #1136 (@technoweenie, @jonmagic)
1816
+ * SSH should be called more strictly with command as one argument #1134 (@sinbad)
1817
+
1818
+ ## 1.1.2 (1 March, 2016)
1819
+
1820
+ * Fix Base64 issues with `?` #989 (@technoweenie)
1821
+ * Fix zombie git proc issue #1012 (@rlaakkol)
1822
+ * Fix problems with files containing unicode characters #1016 (@technoweenie)
1823
+ * Fix panic in `git cat-file` parser #1006 (@technoweenie)
1824
+ * Display error messages in non-fatal errors #1028 #1039 #1042 (@technoweenie)
1825
+ * Fix concurrent map access in progress meter (@technoweenie)
1826
+
1827
+ ## 1.1.1 (4 February, 2016)
1828
+
1829
+ ### Features
1830
+
1831
+ * Add copy-on-write support for Linux BTRFS filesystem #952 (@bozaro)
1832
+ * convert `git://` remotes to LFS servers automatically #964 (@technoweenie)
1833
+ * Fix `git lfs track` handling of absolute paths. #975 (@technoweenie)
1834
+ * Allow tunable http client timeouts #977 (@technoweenie)
1835
+
1836
+ ### Bugs
1837
+
1838
+ * Suppress git config warnings for non-LFS keys #861 (@technoweenie)
1839
+ * Fix fallthrough when `git-lfs-authenticate` returns an error #909 (@sinbad)
1840
+ * Fix progress bar issue #883 (@pokehanai)
1841
+ * Support `remote.name.pushurl` config #949 (@sinbad)
1842
+ * Fix handling of `GIT_DIR` and `GIT_WORK_TREE` #963, #971 (@technoweenie)
1843
+ * Fix handling of zero length files #966 (@nathanhi)
1844
+ * Guard against invalid remotes passed to `push` and `pre-push` #974 (@technoweenie)
1845
+ * Fix race condition in `git lfs pull` #972 (@technoweenie)
1846
+
1847
+ ### Extra
1848
+
1849
+ * Add server API test tool #868 (@sinbad)
1850
+ * Redo windows installer with innosetup #875 (@strich)
1851
+ * Pre-built packages are built with Go v1.5.3
1852
+
1853
+ ## 1.1.0 (18 November, 2015)
1854
+
1855
+ * NTLM auth support #820 (@WillHipschman, @technoweenie)
1856
+ * Add `prune` command #742 (@sinbad)
1857
+ * Use .lfsconfig instead of .gitconfig #837 (@technoweenie)
1858
+ * Rename "init" command #838 (@technoweenie)
1859
+ * Raise error if credentials are needed #842 (@technoweenie)
1860
+ * Support git repos in symlinked directories #818 (@sinbad, @difro, @jiangxin)
1861
+ * Fix "git lfs env" to show correct SSH remote info #828 (@jiangxin)
1862
+
1863
+ ## 1.0.2 (28 October, 2015)
1864
+
1865
+ * Fix issue with 'git lfs smudge' and the batch API. #795 (@technoweenie)
1866
+ * Fix race condition in the git scanning code. #801 (@technoweenie)
1867
+
1868
+ ## 1.0.1 (23 October, 2015)
1869
+
1870
+ * Downcase git config keys (prevents Auth loop) #690 (@WillHipschman)
1871
+ * Show more info for unexpected http responses #710 (@rubyist)
1872
+ * Use separate stdout/stderr buffers for `git-lfs-authenticate` #718 (@bozaro)
1873
+ * Use LoggedError instead of Panic if update-index fails in checkout #735 (@sinbad)
1874
+ * `smudge` command exits with non-zero if the download fails #732 (@rubyist)
1875
+ * Use `git rev-parse` to find the git working dir #692 (@sinbad)
1876
+ * Improved default remote behaviour & validation for fetch/pull #713 (@sinbad)
1877
+ * Make fetch return error code when 1+ downloads failed #734 (@sinbad)
1878
+ * Improve lfs.InRepo() detection in `init`/`update` #756 (@technoweenie)
1879
+ * Teach smudge to use the batch api #711 (@rubyist)
1880
+ * Fix not setting global attribute when needed to b/c of local state #765 (@sinbad)
1881
+ * Fix clone fail when fetch is excluded globally #770 (@sinbad)
1882
+ * Fix for partial downloads problem #763 (@technoweenie)
1883
+ * Get integration tests passing on Windows #771 (@sinbad)
1884
+
1885
+ ### Security
1886
+
1887
+ * Whitelist the valid keys read from .gitconfig #760 (@technoweenie)
1888
+
1889
+ This prevents unsafe git configuration values from being used by Git LFS.
1890
+
1891
+ ## v1.0 (1 October, 2015)
1892
+
1893
+ * Manual reference is integrated into the "help" options #665 @sinbad
1894
+ * Fix `ls-files` when run from an empty repository #668 @Aorjoa
1895
+ * Support listing duplicate files in `ls-files` #681 @Aorjoa @technoweenie
1896
+ * `update` and `init` commands can install the pre-push hook in bare repositories #671 @technoweenie
1897
+ * Add `GIT_LFS_SKIP_SMUDGE` and `init --skip-smudge` #679 @technoweenie
1898
+
1899
+ ## v0.6.0 (10 September, 2015)
1900
+
1901
+ This is the first release that uses the new Batch API by default, while still
1902
+ falling back to the Legacy API automatically. Also, new fetch/checkout/push
1903
+ commands have been added.
1904
+
1905
+ Run `git lfs update` in any local repositories to make sure all config settings
1906
+ are updated.
1907
+
1908
+ ### Fetch
1909
+
1910
+ * Rename old `git lfs fetch` command to `git lfs pull`. #527 (@sinbad)
1911
+ * Add `git lfs checkout` #527 #543 #551 #566 (@sinbad)
1912
+ * Add `git lfs fetch` for _just_ downloading objects. #527 (@sinbad)
1913
+ * Add `remote` arg, and default to tracking remote instead of "origin". #583 (@sinbad)
1914
+ * Support fetching multiple refs #542 (@sinbad)
1915
+ * Add `--include` and `--exclude` flag for `git lfs fetch` #573 (@sinbad)
1916
+ * Add `--recent` flag for downloading recent files outside of the current
1917
+ checkout. #610 (@sinbad)
1918
+ * Add `--all` option for download all objects from the server. #633 (@sinbad)
1919
+ * Fix error handling while `git update-index` is running. #570 (@rubyist)
1920
+
1921
+ See [git-lfs-fetch(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-fetch.1.ronn),
1922
+ [git-lfs-checkout(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-checkout.1.ronn),
1923
+ and [git-lfs-pull(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-pull.1.ronn)
1924
+ for details.
1925
+
1926
+ ### Push
1927
+
1928
+ * Support pushing multiple branches in the pre-push hook. #635 (@sinbad)
1929
+ * Fix pushing objects from a branch that's not HEAD. #608 (@sinbad)
1930
+ * Check server for objects before failing push because local is missing. #581 (@sinbad)
1931
+ * Filter out commits from remote refs when pushing. #578 (@billygor)
1932
+ * Support pushing all objects to the server, regardless of the remote ref. #646 (@technoweenie)
1933
+ * Fix case where pre-push git hook exits with 0. #582 (@sinbad)
1934
+
1935
+ See [git-lfs-push(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-push.1.ronn) for details.
1936
+
1937
+ ### API Clients
1938
+
1939
+ * Fix some race conditions in the Batch API client. #577 #637 (@sinbad, @rubyist)
1940
+ * Support retries in the Batch API client. #595 (@rubyist)
1941
+ * Fix hanging batch client in certain error conditions. #594 (@rubyist)
1942
+ * Treat 401 responses as errors in the Legacy API client. #634 (@rubyist)
1943
+ * Fix bug in the Legacy API client when the object already exists on the server. #572 (@billygor)
1944
+
1945
+ ### Credentials
1946
+
1947
+ * Fix how git credentials are checked in certain edge cases. #611 #650 #652 (@technoweenie)
1948
+ * Send URI user to git credentials. #626 (@sinbad)
1949
+ * Support git credentials with useHttpPath enabled. #554 (@clareliguori)
1950
+
1951
+ ### Installation
1952
+
1953
+ * Docker images and scripts for building and testing linux packages. #511 #526 #555 #603 (@andyneff, @ssgelm)
1954
+ * Create Windows GUI installer. #642 (@technoweenie)
1955
+ * Binary releases use Go 1.5, which includes fix for Authorization when the
1956
+ request URL includes just the username. [golang/go#11399](https://github.com/golang/go/issues/11399)
1957
+
1958
+ ### Misc
1959
+
1960
+ * Documented Git config values used by Git LFS in [git-lfs-config(5)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-config.5.ronn). #610 (@sinbad)
1961
+ * Experimental support for Git worktrees (in Git 2.5+) #546 (@sinbad)
1962
+ * Experimental extension support. #486 (@ryansimmen)
1963
+
1964
+ ## v0.5.4 (30 July, 2015)
1965
+
1966
+ * Ensure `git lfs uninit` cleans your git config thoroughly. #530 (@technoweenie)
1967
+ * Fix issue with asking `git-credentials` for auth details after getting them
1968
+ from the SSH command. #534 (@technoweenie)
1969
+
1970
+ ## v0.5.3 (23 July, 2015)
1971
+
1972
+ * `git lfs fetch` bugs #429 (@rubyist)
1973
+ * Push can crash on 32 bit architectures #450 (@rubyist)
1974
+ * Improved SSH support #404, #464 (@sinbad, @technoweenie)
1975
+ * Support 307 redirects with relative url #442 (@sinbad)
1976
+ * Fix `init` issues when upgrading #446 #451 #452 #465 (@technoweenie, @rubyist)
1977
+ * Support chunked Transfer-Encoding #386 (@ryansimmen)
1978
+ * Fix issue with pushing deleted objects #461 (@technoweenie)
1979
+ * Teach `git lfs push` how to send specific objects #449 (@larsxschneider)
1980
+ * Update error message when attempting to push objects that don't exist in `.git/lfs/objects` #447 (@technoweenie)
1981
+ * Fix bug in HTTP client when response body is nil #472 #488 (@rubyist, @technoweenie)
1982
+ * `-crlf` flag in gitattributes is deprecated #475 (@technoweenie)
1983
+ * Improvements to the CentOS and Debian build and package scripts (@andyneff, @ssgelm)
1984
+
1985
+ ## v0.5.2 (19 June, 2015)
1986
+
1987
+ * Add `git lfs fetch` command for downloading objects. #285 (@rubyist)
1988
+ * Fix `git lfs track` issues when run outside of a git repository #312, #323 (@michael-k, @Aorjoa)
1989
+ * Fix `git lfs track` for paths with spaces in them #327 (@technoweenie)
1990
+ * Fix `git lfs track` by writing relative paths to .gitattributes #356 (@michael-k)
1991
+ * Fix `git lfs untrack` so it doesn't remove entries incorrectly from .gitattributes #398 (@michael-k)
1992
+ * Fix `git lfs clean` bug with zero length files #346 (@technoweenie)
1993
+ * Add `git lfs fsck` #373 (@zeroshirts, @michael-k)
1994
+ * The Git pre-push warns if Git LFS is not installed #339 (@rubyist)
1995
+ * Fix Content-Type header sent by the HTTP client #329 (@joerg)
1996
+ * Improve performance tracing while scanning refs #311 (@michael-k)
1997
+ * Fix detection of LocalGitDir and LocalWorkingDir #312 #354 #361 (@michael-k)
1998
+ * Fix inconsistent file mode bits for directories created by Git LFS #364 (@michael-k)
1999
+ * Optimize shell execs #377, #382, #391 (@bozaro)
2000
+ * Collect HTTP transfer stats #366, #400 (@rubyist)
2001
+ * Support GIT_DIR and GIT_WORK_TREE #370 (@michael-k)
2002
+ * Hide Git application window in Windows #381 (@bozaro)
2003
+ * Add support for configured URLs containing credentials per RFC1738 #408 (@ewbankkit, @technoweenie)
2004
+ * Add experimental support for batch API calls #285 (@rubyist)
2005
+ * Improve linux build instructions for CentOS and Debian. #299 #309 #313 #332 (@jsh, @ssgelm, @andyneff)
2006
+
2007
+ ## v0.5.1 (30 April, 2015)
2008
+
2009
+ * Fix Windows install.bat script. #223 (@PeterDaveHello)
2010
+ * Fix bug where `git lfs clean` will clean Git LFS pointers too #271 (@technoweenie)
2011
+ * Better timeouts for the HTTP client #215 (@Mistobaan)
2012
+ * Concurrent uploads through `git lfs push` #258 (@rubyist)
2013
+ * Fix `git lfs smudge` behavior with zero-length file in `.git/lfs/objects` #267 (@technoweenie)
2014
+ * Separate out pre-push hook behavior from `git lfs push` #263 (@technoweenie)
2015
+ * Add diff/merge properties to .gitattributes #265 (@technoweenie)
2016
+ * Respect `GIT_TERMINAL_PROMPT ` #257 (@technoweenie)
2017
+ * Fix CLI progress bar output #185 (@technoweenie)
2018
+ * Fail fast in `clean` and `smudge` commands when run without STDIN #264 (@technoweenie)
2019
+ * Fix shell quoting in pre-push hook. #235 (@mhagger)
2020
+ * Fix progress bar output during file uploads. #185 (@technoweenie)
2021
+ * Change `remote.{name}.lfs_url` to `remote.{name}.lfsurl` #237 (@technoweenie)
2022
+ * Swap `git config` order. #245 (@technoweenie)
2023
+ * New `git lfs pointer` command for generating and comparing pointers #246 (@technoweenie)
2024
+ * Follow optional "href" property from git-lfs-authenticate SSH command #247 (@technoweenie)
2025
+ * `.git/lfs/objects` spec clarifications: #212 (@rtyley), #244 (@technoweenie)
2026
+ * man page updates: #228 (@mhagger)
2027
+ * pointer spec clarifications: #246 (@technoweenie)
2028
+ * Code comments for the untrack command: #225 (@thekafkaf)
2029
+
2030
+ ## v0.5.0 (10 April, 2015)
2031
+
2032
+ * Initial public release
README.md CHANGED
@@ -1,19 +1,248 @@
1
- ---
2
- language: "en"
3
- thumbnail: "Keywords to Sentences"
4
- tags:
5
- - keytotext
6
- - k2t
7
- - Keywords to Sentences
8
-
9
- model-index:
10
- - name: t5-small
11
- ---
12
-
13
- Idea is to build a model which will take keywords as inputs and generate sentences as outputs.
14
-
15
- Potential use case can include:
16
- - Marketing
17
- - Search Engine Optimization
18
- - Topic generation etc.
19
- - Fine tuning of topic modeling models
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Git Large File Storage
2
+
3
+ [![CI status][ci_badge]][ci_url]
4
+
5
+ [ci_badge]: https://github.com/git-lfs/git-lfs/workflows/CI/badge.svg
6
+ [ci_url]: https://github.com/git-lfs/git-lfs/actions?query=workflow%3ACI
7
+
8
+ [Git LFS](https://git-lfs.github.com) is a command line extension and
9
+ [specification](docs/spec.md) for managing large files with Git.
10
+
11
+ The client is written in Go, with pre-compiled binaries available for Mac,
12
+ Windows, Linux, and FreeBSD. Check out the [website](http://git-lfs.github.com)
13
+ for an overview of features.
14
+
15
+ ## Getting Started
16
+
17
+ ### Downloading
18
+
19
+ You can install the Git LFS client in several different ways, depending on your
20
+ setup and preferences.
21
+
22
+ * **Linux users**. Debian and RPM packages are available from
23
+ [PackageCloud](https://packagecloud.io/github/git-lfs/install).
24
+ * **macOS users**. [Homebrew](https://brew.sh) bottles are distributed, and can
25
+ be installed via `brew install git-lfs`.
26
+ * **Windows users**. Git LFS is included in the distribution of
27
+ [Git for Windows](https://gitforwindows.org/). Alternatively, you can
28
+ install a recent version of Git LFS from the [Chocolatey](https://chocolatey.org/) package manager.
29
+ * **Binary packages**. In addition, [binary packages](https://github.com/git-lfs/git-lfs/releases) are
30
+ available for Linux, macOS, Windows, and FreeBSD.
31
+ * **Building from source**. [This repository](https://github.com/git-lfs/git-lfs.git) can also be
32
+ built from source using the latest version of [Go](https://golang.org), and the
33
+ available instructions in our
34
+ [Wiki](https://github.com/git-lfs/git-lfs/wiki/Installation#source).
35
+
36
+ ### Installing
37
+
38
+ #### From binary
39
+
40
+ The [binary packages](https://github.com/git-lfs/git-lfs/releases) include a script which will:
41
+
42
+ - Install Git LFS binaries onto the system `$PATH`
43
+ - Run `git lfs install` to
44
+ perform required global configuration changes.
45
+
46
+ ```ShellSession
47
+ $ ./install.sh
48
+ ```
49
+
50
+ #### From source
51
+
52
+ - Ensure you have the latest version of Go, GNU make, and a standard Unix-compatible build environment installed.
53
+ - On Windows, install `goversioninfo` with `go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo`.
54
+ - Run `make`.
55
+ - Place the `git-lfs` binary, which can be found in `bin`, on your system’s executable `$PATH` or equivalent.
56
+ - Git LFS requires global configuration changes once per-machine. This can be done by
57
+ running:
58
+
59
+ ```ShellSession
60
+ $ git lfs install
61
+ ```
62
+
63
+ #### Verifying releases
64
+
65
+ Releases are signed with the OpenPGP key of one of the core team members. To
66
+ get these keys, you can run the following command, which will print them to
67
+ standard output:
68
+
69
+ ```ShellSession
70
+ $ curl -L https://api.github.com/repos/git-lfs/git-lfs/tarball/core-gpg-keys | tar -Ozxf -
71
+ ```
72
+
73
+ Once you have the keys, you can download the `sha256sums.asc` file and verify
74
+ the file you want like so:
75
+
76
+ ```ShellSession
77
+ $ gpg -d sha256sums.asc | grep git-lfs-linux-amd64-v2.10.0.tar.gz | shasum -a 256 -c
78
+ ```
79
+
80
+ ## Example Usage
81
+
82
+ To begin using Git LFS within a Git repository that is not already configured
83
+ for Git LFS, you can indicate which files you would like Git LFS to manage.
84
+ This can be done by running the following _from within a Git repository_:
85
+
86
+ ```bash
87
+ $ git lfs track "*.psd"
88
+ ```
89
+
90
+ (Where `*.psd` is the pattern of filenames that you wish to track. You can read
91
+ more about this pattern syntax
92
+ [here](https://git-scm.com/docs/gitattributes)).
93
+
94
+ > *Note:* the quotation marks surrounding the pattern are important to
95
+ > prevent the glob pattern from being expanded by the shell.
96
+
97
+ After any invocation of `git-lfs-track(1)` or `git-lfs-untrack(1)`, you _must
98
+ commit changes to your `.gitattributes` file_. This can be done by running:
99
+
100
+ ```bash
101
+ $ git add .gitattributes
102
+ $ git commit -m "track *.psd files using Git LFS"
103
+ ```
104
+
105
+ You can now interact with your Git repository as usual, and Git LFS will take
106
+ care of managing your large files. For example, changing a file named `my.psd`
107
+ (tracked above via `*.psd`):
108
+
109
+ ```bash
110
+ $ git add my.psd
111
+ $ git commit -m "add psd"
112
+ ```
113
+
114
+ > _Tip:_ if you have large files already in your repository's history, `git lfs
115
+ > track` will _not_ track them retroactively. To migrate existing large files
116
+ > in your history to use Git LFS, use `git lfs migrate`. For example:
117
+ >
118
+ > ```
119
+ > $ git lfs migrate import --include="*.psd" --everything
120
+ > ```
121
+ >
122
+ > For more information, read [`git-lfs-migrate(1)`](https://github.com/git-lfs/git-lfs/blob/main/docs/man/git-lfs-migrate.1.ronn).
123
+
124
+ You can confirm that Git LFS is managing your PSD file:
125
+
126
+ ```bash
127
+ $ git lfs ls-files
128
+ 3c2f7aedfb * my.psd
129
+ ```
130
+
131
+ Once you've made your commits, push your files to the Git remote:
132
+
133
+ ```bash
134
+ $ git push origin main
135
+ Uploading LFS objects: 100% (1/1), 810 B, 1.2 KB/s
136
+ # ...
137
+ To https://github.com/git-lfs/git-lfs-test
138
+ 67fcf6a..47b2002 main -> main
139
+ ```
140
+
141
+ Note: Git LFS requires at least Git 1.8.2 on Linux or 1.8.5 on macOS.
142
+
143
+ ### Uninstalling
144
+
145
+ If you've decided that Git LFS isn't right for you, you can convert your
146
+ repository back to a plain Git repository with `git lfs migrate` as well. For
147
+ example:
148
+
149
+ ```ShellSession
150
+ $ git lfs migrate export --include="*.psd" --everything
151
+ ```
152
+
153
+ Note that this will rewrite history and change all of the Git object IDs in your
154
+ repository, just like the import version of this command.
155
+
156
+ If there's some reason that things aren't working out for you, please let us
157
+ know in an issue, and we'll definitely try to help or get it fixed.
158
+
159
+ ## Limitations
160
+
161
+ Git LFS maintains a list of currently known limitations, which you can find and
162
+ edit [here](https://github.com/git-lfs/git-lfs/wiki/Limitations).
163
+
164
+ Git LFS source code utilizes Go modules in its build system, and therefore this
165
+ project contains a `go.mod` file with a defined Go module path. However, we
166
+ do not maintain a stable Go language API or ABI, as Git LFS is intended to be
167
+ used solely as a compiled binary utility. Please do not import the `git-lfs`
168
+ module into other Go code and do not rely on it as a source code dependency.
169
+
170
+ ## Need Help?
171
+
172
+ You can get help on specific commands directly:
173
+
174
+ ```bash
175
+ $ git lfs help <subcommand>
176
+ ```
177
+
178
+ The [official documentation](docs) has command references and specifications for
179
+ the tool. There's also a [FAQ](https://github.com/git-lfs/git-lfs/wiki/FAQ) on
180
+ the wiki which answers some common questions.
181
+
182
+ If you have a question on how to use Git LFS, aren't sure about something, or
183
+ are looking for input from others on tips about best practices or use cases,
184
+ feel free to
185
+ [start a discussion](https://github.com/git-lfs/git-lfs/discussions).
186
+
187
+ You can always [open an issue](https://github.com/git-lfs/git-lfs/issues), and
188
+ one of the Core Team members will respond to you. Please be sure to include:
189
+
190
+ 1. The output of `git lfs env`, which displays helpful information about your
191
+ Git repository useful in debugging.
192
+ 2. Any failed commands re-run with `GIT_TRACE=1` in the environment, which
193
+ displays additional information pertaining to why a command crashed.
194
+
195
+ ## Contributing
196
+
197
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for info on working on Git LFS and
198
+ sending patches. Related projects are listed on the [Implementations wiki
199
+ page](https://github.com/git-lfs/git-lfs/wiki/Implementations).
200
+
201
+ See also [SECURITY.md](SECURITY.md) for info on how to submit reports
202
+ of security vulnerabilities.
203
+
204
+ ## Core Team
205
+
206
+ These are the humans that form the Git LFS core team, which runs the project.
207
+
208
+ In alphabetical order:
209
+
210
+ | [@bk2204][bk2204-user] | [@chrisd8088][chrisd8088-user] | [@larsxschneider][larsxschneider-user] |
211
+ | :---: | :---: | :---: |
212
+ | [![][bk2204-img]][bk2204-user] | [![][chrisd8088-img]][chrisd8088-user] | [![][larsxschneider-img]][larsxschneider-user] |
213
+ | [PGP 0223B187][bk2204-pgp] | [PGP 088335A9][chrisd8088-pgp] | [PGP A5795889][larsxschneider-pgp] |
214
+
215
+ [bk2204-img]: https://avatars1.githubusercontent.com/u/497054?s=100&v=4
216
+ [chrisd8088-img]: https://avatars1.githubusercontent.com/u/28857117?s=100&v=4
217
+ [larsxschneider-img]: https://avatars1.githubusercontent.com/u/477434?s=100&v=4
218
+ [bk2204-user]: https://github.com/bk2204
219
+ [chrisd8088-user]: https://github.com/chrisd8088
220
+ [larsxschneider-user]: https://github.com/larsxschneider
221
+ [bk2204-pgp]: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x88ace9b29196305ba9947552f1ba225c0223b187
222
+ [chrisd8088-pgp]: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x86cd3297749375bcf8206715f54fe648088335a9
223
+ [larsxschneider-pgp]: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xaa3b3450295830d2de6db90caba67be5a5795889
224
+
225
+ ### Alumni
226
+
227
+ These are the humans that have in the past formed the Git LFS core team, or
228
+ have otherwise contributed a significant amount to the project. Git LFS would
229
+ not be possible without them.
230
+
231
+ In alphabetical order:
232
+
233
+ | [@andyneff][andyneff-user] | [@PastelMobileSuit][PastelMobileSuit-user] | [@rubyist][rubyist-user] | [@sinbad][sinbad-user] | [@technoweenie][technoweenie-user] | [@ttaylorr][ttaylorr-user] |
234
+ | :---: | :---: | :---: | :---: | :---: | :---: |
235
+ | [![][andyneff-img]][andyneff-user] | [![][PastelMobileSuit-img]][PastelMobileSuit-user] | [![][rubyist-img]][rubyist-user] | [![][sinbad-img]][sinbad-user] | [![][technoweenie-img]][technoweenie-user] | [![][ttaylorr-img]][ttaylorr-user] |
236
+
237
+ [andyneff-img]: https://avatars1.githubusercontent.com/u/7596961?v=3&s=100
238
+ [PastelMobileSuit-img]: https://avatars2.githubusercontent.com/u/37254014?s=100&v=4
239
+ [rubyist-img]: https://avatars1.githubusercontent.com/u/143?v=3&s=100
240
+ [sinbad-img]: https://avatars1.githubusercontent.com/u/142735?v=3&s=100
241
+ [technoweenie-img]: https://avatars3.githubusercontent.com/u/21?v=3&s=100
242
+ [ttaylorr-img]: https://avatars2.githubusercontent.com/u/443245?s=100&v=4
243
+ [andyneff-user]: https://github.com/andyneff
244
+ [PastelMobileSuit-user]: https://github.com/PastelMobileSuit
245
+ [sinbad-user]: https://github.com/sinbad
246
+ [rubyist-user]: https://github.com/rubyist
247
+ [technoweenie-user]: https://github.com/technoweenie
248
+ [ttaylorr-user]: https://github.com/ttaylorr
git-lfs ADDED
Binary file (10.3 MB). View file
git-lfs-linux-amd64-v3.0.2.tar.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:796f5ea0259eabe57f94a8ad1bb0d46806168df30b135a65d88f8a7ee1409e0b
3
+ size 4066152
install.sh ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -eu
3
+
4
+ prefix="/home/ldkhang4869/anaconda3/envs/test"
5
+
6
+ if [ "${PREFIX:-}" != "" ] ; then
7
+ prefix=${PREFIX:-}
8
+ elif [ "${BOXEN_HOME:-}" != "" ] ; then
9
+ prefix=${BOXEN_HOME:-}
10
+ fi
11
+
12
+ mkdir -p $prefix/bin
13
+ rm -rf $prefix/bin/git-lfs*
14
+
15
+ pushd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null
16
+ for g in git*; do
17
+ install $g "$prefix/bin/$g"
18
+ done
19
+ popd > /dev/null
20
+
21
+ PATH+=:$prefix/bin
22
+ git lfs install
man/git-lfs-checkout.1 ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-CHECKOUT" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-checkout\fR \- Update working copy with file content if available
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs checkout\fR \fIfilespec\fR\.\.\. \fBgit lfs checkout\fR \-\-to \fIpath\fR { \-\-ours | \-\-theirs | \-\-base } \fIfile\fR\.\.\.
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Try to ensure that the working copy contains file content for Git LFS objects for the current ref, if the object data is available\. Does not download any content, see git\-lfs\-fetch(1) for that\.
14
+ .
15
+ .P
16
+ Checkout scans the current ref for all LFS objects that would be required, then where a file is either missing in the working copy, or contains placeholder pointer content with the same SHA, the real file content is written, provided we have it in the local store\. Modified files are never overwritten\.
17
+ .
18
+ .P
19
+ Filespecs can be provided as arguments to restrict the files which are updated\.
20
+ .
21
+ .P
22
+ When used with \fB\-\-to\fR and the working tree is in a conflicted state due to a merge, this option checks out one of the three stages of the conflict into a separate file\. This can make using diff tools to inspect and resolve merges easier\.
23
+ .
24
+ .SH "OPTIONS"
25
+ .
26
+ .TP
27
+ \fB\-\-base\fR
28
+ Check out the merge base of the specified file\.
29
+ .
30
+ .TP
31
+ \fB\-\-ours\fR
32
+ Check out our side (that of the current branch) of the conflict for the specified file\.
33
+ .
34
+ .TP
35
+ \fB\-\-theirs\fR
36
+ Check out their side (that of the other branch) of the conflict for the specified file\.
37
+ .
38
+ .TP
39
+ \fB\-\-to\fR \fIpath\fR
40
+ If the working tree is in a conflicted state, check out the portion of the conflict specified by \fB\-\-base\fR, \fB\-\-ours\fR, or \fB\-\-theirs\fR to the given path\.
41
+ .
42
+ .SH "EXAMPLES"
43
+ .
44
+ .IP "\(bu" 4
45
+ Checkout all files that are missing or placeholders
46
+ .
47
+ .IP
48
+ \fBgit lfs checkout\fR
49
+ .
50
+ .IP "\(bu" 4
51
+ Checkout a specific couple of files
52
+ .
53
+ .IP
54
+ \fBgit lfs checkout path/to/file1\.png path/to\.file2\.png\fR
55
+ .
56
+ .IP "" 0
57
+ .
58
+ .SH "SEE ALSO"
59
+ git\-lfs\-fetch(1), git\-lfs\-pull(1)\.
60
+ .
61
+ .P
62
+ Part of the git\-lfs(1) suite\.
man/git-lfs-checkout.1.html ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-checkout(1) - Update working copy with file content if available</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#EXAMPLES">EXAMPLES</a>
61
+ <a href="#SEE-ALSO">SEE ALSO</a>
62
+ </div>
63
+
64
+ <ol class='man-decor man-head man head'>
65
+ <li class='tl'>git-lfs-checkout(1)</li>
66
+ <li class='tc'></li>
67
+ <li class='tr'>git-lfs-checkout(1)</li>
68
+ </ol>
69
+
70
+ <h2 id="NAME">NAME</h2>
71
+ <p class="man-name">
72
+ <code>git-lfs-checkout</code> - <span class="man-whatis">Update working copy with file content if available</span>
73
+ </p>
74
+
75
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
76
+
77
+ <p><code>git lfs checkout</code> <var>filespec</var>...
78
+ <code>git lfs checkout</code> --to <var>path</var> { --ours | --theirs | --base } <var>file</var>...</p>
79
+
80
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
81
+
82
+ <p>Try to ensure that the working copy contains file content for Git LFS objects
83
+ for the current ref, if the object data is available. Does not download any
84
+ content, see <span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span> for that.</p>
85
+
86
+ <p>Checkout scans the current ref for all LFS objects that would be required, then
87
+ where a file is either missing in the working copy, or contains placeholder
88
+ pointer content with the same SHA, the real file content is written, provided
89
+ we have it in the local store. Modified files are never overwritten.</p>
90
+
91
+ <p>Filespecs can be provided as arguments to restrict the files which are updated.</p>
92
+
93
+ <p>When used with <code>--to</code> and the working tree is in a conflicted state due to a
94
+ merge, this option checks out one of the three stages of the conflict into a
95
+ separate file. This can make using diff tools to inspect and resolve merges
96
+ easier.</p>
97
+
98
+ <h2 id="OPTIONS">OPTIONS</h2>
99
+
100
+ <dl>
101
+ <dt class="flush"><code>--base</code></dt><dd><p>Check out the merge base of the specified file.</p></dd>
102
+ <dt class="flush"><code>--ours</code></dt><dd><p>Check out our side (that of the current branch) of the conflict for the
103
+ specified file.</p></dd>
104
+ <dt><code>--theirs</code></dt><dd><p>Check out their side (that of the other branch) of the conflict for the
105
+ specified file.</p></dd>
106
+ <dt><code>--to</code> <var>path</var></dt><dd><p>If the working tree is in a conflicted state, check out the portion of the
107
+ conflict specified by <code>--base</code>, <code>--ours</code>, or <code>--theirs</code> to the given path.</p></dd>
108
+ </dl>
109
+
110
+
111
+ <h2 id="EXAMPLES">EXAMPLES</h2>
112
+
113
+ <ul>
114
+ <li><p>Checkout all files that are missing or placeholders</p>
115
+
116
+ <p><code>git lfs checkout</code></p></li>
117
+ <li><p>Checkout a specific couple of files</p>
118
+
119
+ <p><code>git lfs checkout path/to/file1.png path/to.file2.png</code></p></li>
120
+ </ul>
121
+
122
+
123
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
124
+
125
+ <p><span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-pull<span class="s">(1)</span></span>.</p>
126
+
127
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
128
+
129
+
130
+ <ol class='man-decor man-foot man foot'>
131
+ <li class='tl'></li>
132
+ <li class='tc'>October 2021</li>
133
+ <li class='tr'>git-lfs-checkout(1)</li>
134
+ </ol>
135
+
136
+ </div>
137
+ </body>
138
+ </html>
man/git-lfs-clean.1 ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-CLEAN" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-clean\fR \- Git clean filter that converts large files to pointers
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs clean\fR \fIpath\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Read the contents of a large file from standard input, and write a Git LFS pointer file for that file to standard output\.
14
+ .
15
+ .P
16
+ Clean is typically run by Git\'s clean filter, configured by the repository\'s Git attributes\.
17
+ .
18
+ .P
19
+ Clean is not part of the user\-facing Git plumbing commands\. To preview the pointer of a large file as it would be generated, see the git\-lfs\-pointer(1) command\.
20
+ .
21
+ .SH "SEE ALSO"
22
+ git\-lfs\-install(1), git\-lfs\-push(1), git\-lfs\-pointer(1), gitattributes(5)\.
23
+ .
24
+ .P
25
+ Part of the git\-lfs(1) suite\.
man/git-lfs-clean.1.html ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-clean(1) - Git clean filter that converts large files to pointers</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#SEE-ALSO">SEE ALSO</a>
60
+ </div>
61
+
62
+ <ol class='man-decor man-head man head'>
63
+ <li class='tl'>git-lfs-clean(1)</li>
64
+ <li class='tc'></li>
65
+ <li class='tr'>git-lfs-clean(1)</li>
66
+ </ol>
67
+
68
+ <h2 id="NAME">NAME</h2>
69
+ <p class="man-name">
70
+ <code>git-lfs-clean</code> - <span class="man-whatis">Git clean filter that converts large files to pointers</span>
71
+ </p>
72
+
73
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
74
+
75
+ <p><code>git lfs clean</code> <var>path</var></p>
76
+
77
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
78
+
79
+ <p>Read the contents of a large file from standard input, and write a Git
80
+ LFS pointer file for that file to standard output.</p>
81
+
82
+ <p>Clean is typically run by Git's clean filter, configured by the repository's
83
+ Git attributes.</p>
84
+
85
+ <p>Clean is not part of the user-facing Git plumbing commands. To preview the
86
+ pointer of a large file as it would be generated, see the <span class="man-ref">git-lfs-pointer<span class="s">(1)</span></span>
87
+ command.</p>
88
+
89
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
90
+
91
+ <p><span class="man-ref">git-lfs-install<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-push<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-pointer<span class="s">(1)</span></span>, <span class="man-ref">gitattributes<span class="s">(5)</span></span>.</p>
92
+
93
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
94
+
95
+
96
+ <ol class='man-decor man-foot man foot'>
97
+ <li class='tl'></li>
98
+ <li class='tc'>October 2021</li>
99
+ <li class='tr'>git-lfs-clean(1)</li>
100
+ </ol>
101
+
102
+ </div>
103
+ </body>
104
+ </html>
man/git-lfs-clone.1 ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-CLONE" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-clone\fR \- Efficiently clone a LFS\-enabled repository
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs clone\fR [git clone options] \fIrepository\fR [\fIdirectory\fR]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Clone an LFS enabled Git repository more efficiently by disabling LFS during the git clone, then performing a \'git lfs pull\' directly afterwards\.
14
+ .
15
+ .P
16
+ \'git lfs clone\' also installs all of the repo\-level hooks (\.git/hooks) that LFS requires to operate\. If \fB\-\-separate\-git\-dir\fR is given, the hooks will be installed there\.
17
+ .
18
+ .P
19
+ This is faster than a regular \'git clone\' because that will download LFS content using the smudge filter, which is executed individually per file in the working copy\. This is relatively inefficient compared to the batch mode and parallel downloads performed by \'git lfs pull\'\.
20
+ .
21
+ .SH "OPTIONS"
22
+ All options supported by \'git clone\'
23
+ .
24
+ .TP
25
+ \fB\-I\fR \fIpaths\fR \fB\-\-include=\fR\fIpaths\fR
26
+ See \fIINCLUDE AND EXCLUDE\fR
27
+ .
28
+ .TP
29
+ \fB\-X\fR \fIpaths\fR \fB\-\-exclude=\fR\fIpaths\fR
30
+ See \fIINCLUDE AND EXCLUDE\fR
31
+ .
32
+ .TP
33
+ \fB\-\-skip\-repo\fR
34
+ Skip installing repo\-level hooks (\.git/hooks) that LFS requires\. Disabled by default\.
35
+ .
36
+ .SH "INCLUDE AND EXCLUDE"
37
+ 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\.
38
+ .
39
+ .P
40
+ In lfsconfig, set lfs\.fetchinclude and lfs\.fetchexclude to comma\-separated lists of paths to include/exclude in the fetch (wildcard matching as per gitignore)\. Only paths which are matched by fetchinclude and not matched by fetchexclude will have objects fetched for them\.
41
+ .
42
+ .P
43
+ Note that using the command\-line options \fB\-I\fR and \fB\-X\fR override the respective configuration settings\.
44
+ .
45
+ .SH "SEE ALSO"
46
+ git\-clone(1), git\-lfs\-pull(1)\.
47
+ .
48
+ .P
49
+ Part of the git\-lfs(1) suite\.
man/git-lfs-clone.1.html ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-clone(1) - Efficiently clone a LFS-enabled repository</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</a>
61
+ <a href="#SEE-ALSO">SEE ALSO</a>
62
+ </div>
63
+
64
+ <ol class='man-decor man-head man head'>
65
+ <li class='tl'>git-lfs-clone(1)</li>
66
+ <li class='tc'></li>
67
+ <li class='tr'>git-lfs-clone(1)</li>
68
+ </ol>
69
+
70
+ <h2 id="NAME">NAME</h2>
71
+ <p class="man-name">
72
+ <code>git-lfs-clone</code> - <span class="man-whatis">Efficiently clone a LFS-enabled repository</span>
73
+ </p>
74
+
75
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
76
+
77
+ <p><code>git lfs clone</code> [git clone options] <var>repository</var> [<var>directory</var>]</p>
78
+
79
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
80
+
81
+ <p>Clone an LFS enabled Git repository more efficiently by disabling LFS during the
82
+ git clone, then performing a 'git lfs pull' directly afterwards.</p>
83
+
84
+ <p>'git lfs clone' also installs all of the repo-level hooks (.git/hooks) that LFS
85
+ requires to operate. If <code>--separate-git-dir</code> is given, the hooks will be
86
+ installed there.</p>
87
+
88
+ <p>This is faster than a regular 'git clone' because that will download LFS content
89
+ using the smudge filter, which is executed individually per file in the working
90
+ copy. This is relatively inefficient compared to the batch mode and parallel
91
+ downloads performed by 'git lfs pull'.</p>
92
+
93
+ <h2 id="OPTIONS">OPTIONS</h2>
94
+
95
+ <p>All options supported by 'git clone'</p>
96
+
97
+ <dl>
98
+ <dt><code>-I</code> <var>paths</var> <code>--include=</code><var>paths</var></dt><dd><p>See <a href="#INCLUDE-AND-EXCLUDE" title="INCLUDE AND EXCLUDE" data-bare-link="true">INCLUDE AND EXCLUDE</a></p></dd>
99
+ <dt><code>-X</code> <var>paths</var> <code>--exclude=</code><var>paths</var></dt><dd><p>See <a href="#INCLUDE-AND-EXCLUDE" title="INCLUDE AND EXCLUDE" data-bare-link="true">INCLUDE AND EXCLUDE</a></p></dd>
100
+ <dt><code>--skip-repo</code></dt><dd><p>Skip installing repo-level hooks (.git/hooks) that LFS requires. Disabled by
101
+ default.</p></dd>
102
+ </dl>
103
+
104
+
105
+ <h2 id="INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</h2>
106
+
107
+ <p>You can configure Git LFS to only fetch objects to satisfy references in certain
108
+ paths of the repo, and/or to exclude certain paths of the repo, to reduce the
109
+ time you spend downloading things you do not use.</p>
110
+
111
+ <p>In lfsconfig, set lfs.fetchinclude and lfs.fetchexclude to comma-separated lists
112
+ of paths to include/exclude in the fetch (wildcard matching as per gitignore).
113
+ Only paths which are matched by fetchinclude and not matched by fetchexclude
114
+ will have objects fetched for them.</p>
115
+
116
+ <p>Note that using the command-line options <code>-I</code> and <code>-X</code> override the respective
117
+ configuration settings.</p>
118
+
119
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
120
+
121
+ <p><span class="man-ref">git-clone<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-pull<span class="s">(1)</span></span>.</p>
122
+
123
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
124
+
125
+
126
+ <ol class='man-decor man-foot man foot'>
127
+ <li class='tl'></li>
128
+ <li class='tc'>October 2021</li>
129
+ <li class='tr'>git-lfs-clone(1)</li>
130
+ </ol>
131
+
132
+ </div>
133
+ </body>
134
+ </html>
man/git-lfs-config.5 ADDED
@@ -0,0 +1,477 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-CONFIG" "5" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-config\fR \- Configuration options for git\-lfs
8
+ .
9
+ .SH "CONFIGURATION FILES"
10
+ git\-lfs reads its configuration from any file supported by \fBgit config \-l\fR, including all per\-repository, per\-user, and per\-system Git configuration files\.
11
+ .
12
+ .P
13
+ Additionally, a small number of settings can be specified in a file called \fB\.lfsconfig\fR at the root of the repository; see the "LFSCONFIG" section for more details\. This configuration file is useful for setting options such as the LFS URL or access type for all users of a repository, especially when these differ from the default\. The \fB\.lfsconfig\fR file uses the same format as \fB\.gitconfig\fR\.
14
+ .
15
+ .P
16
+ If the \fB\.lfsconfig\fR file is missing, the index is checked for a version of the file, and that is used instead\. If both are missing, \fBHEAD\fR is checked for the file\. If the repository is bare, only \fBHEAD\fR is checked\. This order may change for checkouts in the future to better match Git\'s behavior\.
17
+ .
18
+ .P
19
+ Settings from Git configuration files override the \fB\.lfsconfig\fR file\. This allows you to override settings like \fBlfs\.url\fR in your local environment without having to modify the \fB\.lfsconfig\fR file\.
20
+ .
21
+ .P
22
+ Most options regarding git\-lfs are contained in the \fB[lfs]\fR section, meaning they are all named \fBlfs\.foo\fR or similar, although occasionally an lfs option can be scoped inside the configuration for a remote\.
23
+ .
24
+ .SH "LIST OF OPTIONS"
25
+ .
26
+ .SS "General settings"
27
+ .
28
+ .IP "\(bu" 4
29
+ \fBlfs\.url\fR / \fBremote\.<remote>\.lfsurl\fR
30
+ .
31
+ .IP
32
+ The url used to call the Git LFS remote API\. Default blank (derive from clone URL)\.
33
+ .
34
+ .IP "\(bu" 4
35
+ \fBlfs\.pushurl\fR / \fBremote\.<remote>\.lfspushurl\fR
36
+ .
37
+ .IP
38
+ The url used to call the Git LFS remote API when pushing\. Default blank (derive from either LFS non\-push urls or clone url)\.
39
+ .
40
+ .IP "\(bu" 4
41
+ \fBremote\.lfsdefault\fR
42
+ .
43
+ .IP
44
+ The remote used to find the Git LFS remote API\. \fBlfs\.url\fR and \fBbranch\.*\.remote\fR for the current branch override this setting\. If this setting is not specified and there is exactly one remote, that remote is picked; otherwise, the default is \fBorigin\fR\.
45
+ .
46
+ .IP "\(bu" 4
47
+ \fBremote\.lfspushdefault\fR
48
+ .
49
+ .IP
50
+ The remote used to find the Git LFS remote API when pushing\. \fBlfs\.url\fR and \fBbranch\.*\.pushremote\fR for the current branch override this setting\. If this setting is not set, \fBremote\.pushdefault\fR is used, or if that is not set, the order of selection is used as specified in the \fBremote\.lfsdefault\fR above\.
51
+ .
52
+ .IP "\(bu" 4
53
+ \fBlfs\.dialtimeout\fR
54
+ .
55
+ .IP
56
+ Sets the maximum time, in seconds, that the HTTP client will wait to initiate a connection\. This does not include the time to send a request and wait for a response\. Default: 30 seconds
57
+ .
58
+ .IP "\(bu" 4
59
+ \fBlfs\.tlstimeout\fR
60
+ .
61
+ .IP
62
+ Sets the maximum time, in seconds, that the HTTP client will wait for a TLS handshake\. Default: 30 seconds\.
63
+ .
64
+ .IP "\(bu" 4
65
+ \fBlfs\.activitytimeout\fR / \fBlfs\.https://<host>\.activitytimeout\fR
66
+ .
67
+ .IP
68
+ Sets the maximum time, in seconds, that the HTTP client will wait for the next tcp read or write\. If < 1, no activity timeout is used at all\. Default: 30 seconds
69
+ .
70
+ .IP "\(bu" 4
71
+ \fBlfs\.keepalive\fR
72
+ .
73
+ .IP
74
+ Sets the maximum time, in seconds, for the HTTP client to maintain keepalive connections\. Default: 30 minutes\.
75
+ .
76
+ .IP "\(bu" 4
77
+ \fBlfs\.ssh\.automultiplex\fR
78
+ .
79
+ .IP
80
+ When using the pure SSH\-based protocol, whether to multiplex requests over a single connection when possible\. This option requires the use of OpenSSH or a compatible SSH client\. Default: true\.
81
+ .
82
+ .IP "\(bu" 4
83
+ \fBlfs\.ssh\.retries\fR
84
+ .
85
+ .IP
86
+ Specifies the number of times Git LFS will attempt to obtain authorization via SSH before aborting\. Default: 5\.
87
+ .
88
+ .IP "\(bu" 4
89
+ \fBcore\.askpass\fR, GIT_ASKPASS
90
+ .
91
+ .IP
92
+ Given as a program and its arguments, this is invoked when authentication is needed against the LFS API\. The contents of stdout are interpreted as the password\.
93
+ .
94
+ .IP "\(bu" 4
95
+ \fBlfs\.cachecredentials\fR
96
+ .
97
+ .IP
98
+ Enables in\-memory SSH and Git Credential caching for a single \'git lfs\' command\. Default: enabled\.
99
+ .
100
+ .IP "\(bu" 4
101
+ \fBlfs\.storage\fR
102
+ .
103
+ .IP
104
+ Allow override LFS storage directory\. Non\-absolute path is relativized to inside of Git repository directory (usually \fB\.git\fR)\.
105
+ .
106
+ .IP
107
+ Note: you should not run \fBgit lfs prune\fR if you have different repositories sharing the same storage directory\.
108
+ .
109
+ .IP
110
+ Default: \fBlfs\fR in Git repository directory (usually \fB\.git/lfs\fR)\.
111
+ .
112
+ .IP "\(bu" 4
113
+ \fBlfs\.largefilewarning\fR
114
+ .
115
+ .IP
116
+ Warn when a file is 4 GiB or larger\. Such files will be corrupted when using Windows (unless smudging is disabled) due to a limitation in Git\. Default: true\.
117
+ .
118
+ .IP "" 0
119
+ .
120
+ .SS "Transfer (upload / download) settings"
121
+ These settings control how the upload and download of LFS content occurs\.
122
+ .
123
+ .IP "\(bu" 4
124
+ \fBlfs\.concurrenttransfers\fR
125
+ .
126
+ .IP
127
+ The number of concurrent uploads/downloads\. Default 8\.
128
+ .
129
+ .IP "\(bu" 4
130
+ \fBlfs\.basictransfersonly\fR
131
+ .
132
+ .IP
133
+ If set to true, only basic HTTP upload/download transfers will be used, ignoring any more advanced transfers that the client/server may support\. This is primarily to work around bugs or incompatibilities\.
134
+ .
135
+ .IP
136
+ The git\-lfs client supports basic HTTP downloads, resumable HTTP downloads (using \fBRange\fR headers), and resumable uploads via tus\.io protocol\. Custom transfer methods can be added via \fBlfs\.customtransfer\fR (see next section)\. However setting this value to true limits the client to simple HTTP\.
137
+ .
138
+ .IP "\(bu" 4
139
+ \fBlfs\.tustransfers\fR
140
+ .
141
+ .IP
142
+ If set to true, this enables resumable uploads of LFS objects through the tus\.io API\. Once this feature is finalized, this setting will be removed, and tus\.io uploads will be available for all clients\.
143
+ .
144
+ .IP "\(bu" 4
145
+ \fBlfs\.standalonetransferagent\fR
146
+ .
147
+ .IP
148
+ Allows the specified custom transfer agent to be used directly for transferring files, without asking the server how the transfers should be made\. The custom transfer agent has to be defined in a \fBlfs\.customtransfer\.<name>\fR settings group\.
149
+ .
150
+ .IP "\(bu" 4
151
+ \fBlfs\.customtransfer\.<name>\.path\fR
152
+ .
153
+ .IP
154
+ \fBlfs\.customtransfer\.<name>\fR is a settings group which defines a custom transfer hook which allows you to upload/download via an intermediate process, using any mechanism you like (rather than just HTTP)\. \fBpath\fR should point to the process you wish to invoke\. The protocol between the git\-lfs client and the custom transfer process is documented at https://github\.com/git\-lfs/git\-lfs/blob/main/docs/custom\-transfers\.md
155
+ .
156
+ .IP
157
+ \fIname\fR must be a unique identifier that the LFS server understands\. When calling the LFS API the client will include a list of supported transfer types\. If the server also supports this named transfer type, it will select it and actions returned from the API will be in relation to that transfer type (may not be traditional URLs for example)\. Only if the server accepts \fIname\fR as a transfer it supports will this custom transfer process be invoked\.
158
+ .
159
+ .IP "\(bu" 4
160
+ \fBlfs\.customtransfer\.<name>\.args\fR
161
+ .
162
+ .IP
163
+ If the custom transfer process requires any arguments, these can be provided here\. This string will be expanded by the shell\.
164
+ .
165
+ .IP "\(bu" 4
166
+ \fBlfs\.customtransfer\.<name>\.concurrent\fR
167
+ .
168
+ .IP
169
+ If true (the default), git\-lfs will invoke the custom transfer process multiple times in parallel, according to \fBlfs\.concurrenttransfers\fR, splitting the transfer workload between the processes\.
170
+ .
171
+ .IP "\(bu" 4
172
+ \fBlfs\.customtransfer\.<name>\.direction\fR
173
+ .
174
+ .IP
175
+ Specifies which direction the custom transfer process supports, either "download", "upload", or "both"\. The default if unspecified is "both"\.
176
+ .
177
+ .IP "\(bu" 4
178
+ \fBlfs\.transfer\.maxretries\fR
179
+ .
180
+ .IP
181
+ Specifies how many retries LFS will attempt per OID before marking the transfer as failed\. Must be an integer which is at least one\. If the value is not an integer, is less than one, or is not given, a value of eight will be used instead\.
182
+ .
183
+ .IP "\(bu" 4
184
+ \fBlfs\.transfer\.maxretrydelay\fR
185
+ .
186
+ .IP
187
+ Specifies the maximum time in seconds LFS will wait between each retry attempt\. LFS uses exponential backoff for retries, doubling the time between each retry until reaching this limit\. If a server requests a delay using the \fBRetry\-After\fR header, the header value overrides the exponential delay for that attempt and is not limited by this option\.
188
+ .
189
+ .IP
190
+ Must be an integer which is not negative\. Use zero to disable delays between retries unless requested by a server\. If the value is not an integer, is negative, or is not given, a value of ten will be used instead\.
191
+ .
192
+ .IP "\(bu" 4
193
+ \fBlfs\.transfer\.maxverifies\fR
194
+ .
195
+ .IP
196
+ Specifies how many verification requests LFS will attempt per OID before marking the transfer as failed, if the object has a verification action associated with it\. Must be an integer which is at least one\. If the value is not an integer, is less than one, or is not given, a default value of three will be used instead\.
197
+ .
198
+ .IP "\(bu" 4
199
+ \fBlfs\.transfer\.enablehrefrewrite\fR
200
+ .
201
+ .IP
202
+ If set to true, this enables rewriting href of LFS objects using \fBurl\.*\.insteadof/pushinsteadof\fR config\. \fBpushinsteadof\fR is used only for uploading, and \fBinsteadof\fR is used for downloading and for uploading when \fBpushinsteadof\fR is not set\.
203
+ .
204
+ .IP "" 0
205
+ .
206
+ .SS "Push settings"
207
+ .
208
+ .IP "\(bu" 4
209
+ \fBlfs\.allowincompletepush\fR
210
+ .
211
+ .IP
212
+ When pushing, allow objects to be missing from the local cache without halting a Git push\. Default: false\.
213
+ .
214
+ .IP "" 0
215
+ .
216
+ .SS "Fetch settings"
217
+ .
218
+ .IP "\(bu" 4
219
+ \fBlfs\.fetchinclude\fR
220
+ .
221
+ .IP
222
+ When fetching, only download objects which match any entry on this comma\-separated list of paths/filenames\. Wildcard matching is as per git\-ignore(1)\. See git\-lfs\-fetch(1) for examples\.
223
+ .
224
+ .IP "\(bu" 4
225
+ \fBlfs\.fetchexclude\fR
226
+ .
227
+ .IP
228
+ When fetching, do not download objects which match any item on this comma\-separated list of paths/filenames\. Wildcard matching is as per git\-ignore(1)\. See git\-lfs\-fetch(1) for examples\.
229
+ .
230
+ .IP "\(bu" 4
231
+ \fBlfs\.fetchrecentrefsdays\fR
232
+ .
233
+ .IP
234
+ If non\-zero, fetches refs which have commits within N days of the current date\. Only local refs are included unless lfs\.fetchrecentremoterefs is true\. Also used as a basis for pruning old files\. The default is 7 days\.
235
+ .
236
+ .IP "\(bu" 4
237
+ \fBlfs\.fetchrecentremoterefs\fR
238
+ .
239
+ .IP
240
+ 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\.
241
+ .
242
+ .IP "\(bu" 4
243
+ \fBlfs\.fetchrecentcommitsdays\fR
244
+ .
245
+ .IP
246
+ In addition to fetching at refs, also fetches previous changes made within N days of the latest commit on the ref\. This is useful if you\'re often reviewing recent changes\. Also used as a basis for pruning old files\. The default is 0 (no previous changes)\.
247
+ .
248
+ .IP "\(bu" 4
249
+ \fBlfs\.fetchrecentalways\fR
250
+ .
251
+ .IP
252
+ Always operate as if \-\-recent was included in a \fBgit lfs fetch\fR call\. Default false\.
253
+ .
254
+ .IP "" 0
255
+ .
256
+ .SS "Prune settings"
257
+ .
258
+ .IP "\(bu" 4
259
+ \fBlfs\.pruneoffsetdays\fR
260
+ .
261
+ .IP
262
+ The number of days added to the \fBlfs\.fetchrecent*\fR settings to determine what can be pruned\. Default is 3 days, i\.e\. that anything fetched at the very oldest edge of the \'recent window\' is eligible for pruning 3 days later\.
263
+ .
264
+ .IP "\(bu" 4
265
+ \fBlfs\.pruneremotetocheck\fR
266
+ .
267
+ .IP
268
+ Set the remote that LFS files must have been pushed to in order for them to be considered eligible for local pruning\. Also the remote which is called if \-\-verify\-remote is enabled\.
269
+ .
270
+ .IP "\(bu" 4
271
+ \fBlfs\.pruneverifyremotealways\fR
272
+ .
273
+ .IP
274
+ Always run \fBgit lfs prune\fR as if \fB\-\-verify\-remote\fR was provided\.
275
+ .
276
+ .IP "" 0
277
+ .
278
+ .SS "Extensions"
279
+ .
280
+ .IP "\(bu" 4
281
+ \fBlfs\.extension\.<name>\.<setting>\fR
282
+ .
283
+ .IP
284
+ Git LFS extensions enable the manipulation of files streams during smudge and clean\. \fBname\fR groups the settings for a single extension, and the settings are:
285
+ .
286
+ .IP "\(bu" 4
287
+ \fBclean\fR The command which runs when files are added to the index
288
+ .
289
+ .IP "\(bu" 4
290
+ \fBsmudge\fR The command which runs when files are written to the working copy
291
+ .
292
+ .IP "\(bu" 4
293
+ \fBpriority\fR The order of this extension compared to others
294
+ .
295
+ .IP "" 0
296
+
297
+ .
298
+ .IP "" 0
299
+ .
300
+ .SS "Other settings"
301
+ .
302
+ .IP "\(bu" 4
303
+ \fBlfs\.<url>\.access\fR
304
+ .
305
+ .IP
306
+ Note: this setting is normally set by LFS itself on receiving a 401 response (authentication required), you don\'t normally need to set it manually\.
307
+ .
308
+ .IP
309
+ If set to "basic" then credentials will be requested before making batch requests to this url, otherwise a public request will initially be attempted\.
310
+ .
311
+ .IP "\(bu" 4
312
+ \fBlfs\.<url>\.locksverify\fR
313
+ .
314
+ .IP
315
+ Determines whether locks are checked before Git pushes\. This prevents you from pushing changes to files that other users have locked\. The Git LFS pre\-push hook varies its behavior based on the value of this config key\.
316
+ .
317
+ .IP "\(bu" 4
318
+ \fBnull\fR \- In the absence of a value, Git LFS will attempt the call, and warn if it returns an error\. If the response is valid, Git LFS will set the value to \fBtrue\fR, and will halt the push if the user attempts to update a file locked by another user\. If the server returns a \fB501 Not Implemented\fR response, Git LFS will set the value to \fBfalse\.\fR
319
+ .
320
+ .IP "\(bu" 4
321
+ \fBtrue\fR \- Git LFS will attempt to verify locks, halting the Git push if there are any server issues, or if the user attempts to update a file locked by another user\.
322
+ .
323
+ .IP "\(bu" 4
324
+ \fBfalse\fR \- Git LFS will completely skip the lock check in the pre\-push hook\. You should set this if you\'re not using File Locking, or your Git server verifies locked files on pushes automatically\.
325
+ .
326
+ .IP "" 0
327
+ .
328
+ .IP
329
+ Supports URL config lookup as described in: https://git\-scm\.com/docs/git\-config#git\-config\-httplturlgt\. To set this value per\-host: \fBgit config \-\-global lfs\.https://github\.com/\.locksverify [true|false]\fR\.
330
+ .
331
+ .IP "\(bu" 4
332
+ \fBlfs\.<url>\.contenttype\fR
333
+ .
334
+ .IP
335
+ Determines whether Git LFS should attempt to detect an appropriate HTTP \fBContent\-Type\fR header when uploading using the \'basic\' upload adapter\. If set to false, the default header of \fBContent\-Type: application/octet\-stream\fR is chosen instead\. Default: \'true\'\.
336
+ .
337
+ .IP "\(bu" 4
338
+ \fBlfs\.skipdownloaderrors\fR
339
+ .
340
+ .IP
341
+ Causes Git LFS not to abort the smudge filter when a download error is encountered, which allows actions such as checkout to work when you are unable to download the LFS content\. LFS files which could not download will contain pointer content instead\.
342
+ .
343
+ .IP
344
+ Note that this will result in git commands which call the smudge filter to report success even in cases when LFS downloads fail, which may affect scripts\.
345
+ .
346
+ .IP
347
+ You can also set the environment variable GIT_LFS_SKIP_DOWNLOAD_ERRORS=1 to get the same effect\.
348
+ .
349
+ .IP "\(bu" 4
350
+ \fBGIT_LFS_PROGRESS\fR
351
+ .
352
+ .IP
353
+ This environment variable causes Git LFS to emit progress updates to an absolute file\-path on disk when cleaning, smudging, or fetching\.
354
+ .
355
+ .IP
356
+ Progress is reported periodically in the form of a new line being appended to the end of the file\. Each new line will take the following format:
357
+ .
358
+ .IP
359
+ \fB<direction> <current>/<total files> <downloaded>/<total> <name>\fR
360
+ .
361
+ .IP
362
+ Each field is described below:
363
+ .
364
+ .IP "\(bu" 4
365
+ \fBdirection\fR: The direction of transfer, either "checkout", "download", or "upload"\.
366
+ .
367
+ .IP "\(bu" 4
368
+ \fBcurrent\fR The index of the currently transferring file\.
369
+ .
370
+ .IP "\(bu" 4
371
+ \fBtotal files\fR The estimated count of all files to be transferred\.
372
+ .
373
+ .IP "\(bu" 4
374
+ \fBdownloaded\fR The number of bytes already downloaded\.
375
+ .
376
+ .IP "\(bu" 4
377
+ \fBtotal\fR The entire size of the file, in bytes\.
378
+ .
379
+ .IP "\(bu" 4
380
+ \fBname\fR The name of the file\.
381
+ .
382
+ .IP "" 0
383
+
384
+ .
385
+ .IP "\(bu" 4
386
+ \fBGIT_LFS_FORCE_PROGRESS\fR \fBlfs\.forceprogress\fR
387
+ .
388
+ .IP
389
+ Controls whether Git LFS will suppress progress status when the standard output stream is not attached to a terminal\. The default is \fBfalse\fR which makes Git LFS detect whether stdout is a terminal and suppress progress when it\'s not; you can disable this behaviour and force progress status even when standard output stream is not a terminal by setting either variable to 1, \'yes\' or \'true\'\.
390
+ .
391
+ .IP "\(bu" 4
392
+ \fBGIT_LFS_SKIP_SMUDGE\fR
393
+ .
394
+ .IP
395
+ Sets whether or not Git LFS will skip attempting to convert pointers of files tracked into their corresponding objects when checked out into a working copy\. If \'true\', \'1\', \'on\', or similar, Git LFS will skip the smudge process in both \fBgit lfs smudge\fR and \fBgit lfs filter\-process\fR\. If unset, or set to \'false\', \'0\', \'off\', or similar, Git LFS will smudge files as normal\.
396
+ .
397
+ .IP "\(bu" 4
398
+ \fBGIT_LFS_SKIP_PUSH\fR
399
+ .
400
+ .IP
401
+ Sets whether or not Git LFS will attempt to upload new Git LFS object in a pre\-push hook\. If \'true\', \'1\', \'on\', or similar, Git LFS will skip the pre\-push hook, so no new Git LFS objects will be uploaded\. If unset, or set to \'false\', \'0\', \'off\', or similar, Git LFS will proceed as normal\.
402
+ .
403
+ .IP "\(bu" 4
404
+ \fBGIT_LFS_SET_LOCKABLE_READONLY\fR \fBlfs\.setlockablereadonly\fR
405
+ .
406
+ .IP
407
+ These settings, the first an environment variable and the second a gitconfig setting, control whether files marked as \'lockable\' in \fBgit lfs track\fR are made read\-only in the working copy when not locked by the current user\. The default is \fBtrue\fR; you can disable this behaviour and have all files writeable by setting either variable to 0, \'no\' or \'false\'\.
408
+ .
409
+ .IP "\(bu" 4
410
+ \fBlfs\.lockignoredfiles\fR
411
+ .
412
+ .IP
413
+ This setting controls whether Git LFS will set ignored files that match the lockable pattern read only as well as tracked files\. The default is \fBfalse\fR; you can enable this behavior by setting the variable to 1, \'yes\', or \'true\'\.
414
+ .
415
+ .IP "\(bu" 4
416
+ \fBlfs\.defaulttokenttl\fR
417
+ .
418
+ .IP
419
+ This setting sets a default token TTL when git\-lfs\-authenticate does not include the TTL in the JSON response but still enforces it\.
420
+ .
421
+ .IP
422
+ Note that this is only necessary for larger repositories hosted on LFS servers that don\'t include the TTL\.
423
+ .
424
+ .IP "" 0
425
+ .
426
+ .SH "LFSCONFIG"
427
+ The \.lfsconfig file in a repository is read and interpreted in the same format as the file stored in \.git/config\. It allows a subset of keys to be used, including and limited to:
428
+ .
429
+ .IP "\(bu" 4
430
+ lfs\.allowincompletepush
431
+ .
432
+ .IP "\(bu" 4
433
+ lfs\.fetchexclude
434
+ .
435
+ .IP "\(bu" 4
436
+ lfs\.fetchinclude
437
+ .
438
+ .IP "\(bu" 4
439
+ lfs\.gitprotocol
440
+ .
441
+ .IP "\(bu" 4
442
+ lfs\.locksverify
443
+ .
444
+ .IP "\(bu" 4
445
+ lfs\.pushurl
446
+ .
447
+ .IP "\(bu" 4
448
+ lfs\.skipdownloaderrors
449
+ .
450
+ .IP "\(bu" 4
451
+ lfs\.url
452
+ .
453
+ .IP "\(bu" 4
454
+ lfs\.{*}\.access
455
+ .
456
+ .IP "\(bu" 4
457
+ remote\.{name}\.lfsurl
458
+ .
459
+ .IP "" 0
460
+ .
461
+ .P
462
+ The set of keys allowed in this file is restricted for security reasons\.
463
+ .
464
+ .SH "EXAMPLES"
465
+ .
466
+ .TP
467
+ Configure a custom LFS endpoint for your repository:
468
+
469
+ .
470
+ .P
471
+ \fBgit config \-f \.lfsconfig lfs\.url https://lfs\.example\.com/foo/bar/info/lfs\fR
472
+ .
473
+ .SH "SEE ALSO"
474
+ git\-config(1), git\-lfs\-install(1), gitattributes(5)
475
+ .
476
+ .P
477
+ Part of the git\-lfs(1) suite\.
man/git-lfs-config.5.html ADDED
@@ -0,0 +1,520 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-config(5) - Configuration options for git-lfs</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#CONFIGURATION-FILES">CONFIGURATION FILES</a>
58
+ <a href="#LIST-OF-OPTIONS">LIST OF OPTIONS</a>
59
+ <a href="#LFSCONFIG">LFSCONFIG</a>
60
+ <a href="#EXAMPLES">EXAMPLES</a>
61
+ <a href="#SEE-ALSO">SEE ALSO</a>
62
+ </div>
63
+
64
+ <ol class='man-decor man-head man head'>
65
+ <li class='tl'>git-lfs-config(5)</li>
66
+ <li class='tc'></li>
67
+ <li class='tr'>git-lfs-config(5)</li>
68
+ </ol>
69
+
70
+ <h2 id="NAME">NAME</h2>
71
+ <p class="man-name">
72
+ <code>git-lfs-config</code> - <span class="man-whatis">Configuration options for git-lfs</span>
73
+ </p>
74
+
75
+ <h2 id="CONFIGURATION-FILES">CONFIGURATION FILES</h2>
76
+
77
+ <p>git-lfs reads its configuration from any file supported by <code>git config -l</code>,
78
+ including all per-repository, per-user, and per-system Git configuration files.</p>
79
+
80
+ <p>Additionally, a small number of settings can be specified in a file called
81
+ <code>.lfsconfig</code> at the root of the repository; see the "LFSCONFIG" section for more
82
+ details. This configuration file is useful for setting options such as the LFS
83
+ URL or access type for all users of a repository, especially when these differ
84
+ from the default. The <code>.lfsconfig</code> file uses the same format as <code>.gitconfig</code>.</p>
85
+
86
+ <p>If the <code>.lfsconfig</code> file is missing, the index is checked for a version of the
87
+ file, and that is used instead. If both are missing, <code>HEAD</code> is checked for the
88
+ file. If the repository is bare, only <code>HEAD</code> is checked. This order may change
89
+ for checkouts in the future to better match Git's behavior.</p>
90
+
91
+ <p>Settings from Git configuration files override the <code>.lfsconfig</code> file. This
92
+ allows you to override settings like <code>lfs.url</code> in your local environment without
93
+ having to modify the <code>.lfsconfig</code> file.</p>
94
+
95
+ <p>Most options regarding git-lfs are contained in the <code>[lfs]</code> section, meaning
96
+ they are all named <code>lfs.foo</code> or similar, although occasionally an lfs option can
97
+ be scoped inside the configuration for a remote.</p>
98
+
99
+ <h2 id="LIST-OF-OPTIONS">LIST OF OPTIONS</h2>
100
+
101
+ <h3 id="General-settings">General settings</h3>
102
+
103
+ <ul>
104
+ <li><p><code>lfs.url</code> / <code>remote.&lt;remote>.lfsurl</code></p>
105
+
106
+ <p>The url used to call the Git LFS remote API. Default blank (derive from clone
107
+ URL).</p></li>
108
+ <li><p><code>lfs.pushurl</code> / <code>remote.&lt;remote>.lfspushurl</code></p>
109
+
110
+ <p>The url used to call the Git LFS remote API when pushing. Default blank (derive
111
+ from either LFS non-push urls or clone url).</p></li>
112
+ <li><p><code>remote.lfsdefault</code></p>
113
+
114
+ <p>The remote used to find the Git LFS remote API. <code>lfs.url</code> and
115
+ <code>branch.*.remote</code> for the current branch override this setting. If this
116
+ setting is not specified and there is exactly one remote, that remote is
117
+ picked; otherwise, the default is <code>origin</code>.</p></li>
118
+ <li><p><code>remote.lfspushdefault</code></p>
119
+
120
+ <p>The remote used to find the Git LFS remote API when pushing. <code>lfs.url</code> and
121
+ <code>branch.*.pushremote</code> for the current branch override this setting. If this
122
+ setting is not set, <code>remote.pushdefault</code> is used, or if that is not set, the
123
+ order of selection is used as specified in the <code>remote.lfsdefault</code> above.</p></li>
124
+ <li><p><code>lfs.dialtimeout</code></p>
125
+
126
+ <p>Sets the maximum time, in seconds, that the HTTP client will wait to initiate
127
+ a connection. This does not include the time to send a request and wait for a
128
+ response. Default: 30 seconds</p></li>
129
+ <li><p><code>lfs.tlstimeout</code></p>
130
+
131
+ <p>Sets the maximum time, in seconds, that the HTTP client will wait for a TLS
132
+ handshake. Default: 30 seconds.</p></li>
133
+ <li><p><code>lfs.activitytimeout</code> / <code>lfs.https://&lt;host>.activitytimeout</code></p>
134
+
135
+ <p>Sets the maximum time, in seconds, that the HTTP client will wait for the
136
+ next tcp read or write. If &lt; 1, no activity timeout is used at all.
137
+ Default: 30 seconds</p></li>
138
+ <li><p><code>lfs.keepalive</code></p>
139
+
140
+ <p>Sets the maximum time, in seconds, for the HTTP client to maintain keepalive
141
+ connections. Default: 30 minutes.</p></li>
142
+ <li><p><code>lfs.ssh.automultiplex</code></p>
143
+
144
+ <p>When using the pure SSH-based protocol, whether to multiplex requests over a
145
+ single connection when possible. This option requires the use of OpenSSH or a
146
+ compatible SSH client. Default: true.</p></li>
147
+ <li><p><code>lfs.ssh.retries</code></p>
148
+
149
+ <p>Specifies the number of times Git LFS will attempt to obtain authorization via
150
+ SSH before aborting. Default: 5.</p></li>
151
+ <li><p><code>core.askpass</code>, GIT_ASKPASS</p>
152
+
153
+ <p>Given as a program and its arguments, this is invoked when authentication is
154
+ needed against the LFS API. The contents of stdout are interpreted as the
155
+ password.</p></li>
156
+ <li><p><code>lfs.cachecredentials</code></p>
157
+
158
+ <p>Enables in-memory SSH and Git Credential caching for a single 'git lfs'
159
+ command. Default: enabled.</p></li>
160
+ <li><p><code>lfs.storage</code></p>
161
+
162
+ <p>Allow override LFS storage directory. Non-absolute path is relativized to
163
+ inside of Git repository directory (usually <code>.git</code>).</p>
164
+
165
+ <p>Note: you should not run <code>git lfs prune</code> if you have different repositories
166
+ sharing the same storage directory.</p>
167
+
168
+ <p>Default: <code>lfs</code> in Git repository directory (usually <code>.git/lfs</code>).</p></li>
169
+ <li><p><code>lfs.largefilewarning</code></p>
170
+
171
+ <p>Warn when a file is 4 GiB or larger. Such files will be corrupted when using
172
+ Windows (unless smudging is disabled) due to a limitation in Git. Default:
173
+ true.</p></li>
174
+ </ul>
175
+
176
+
177
+ <h3 id="Transfer-upload-download-settings">Transfer (upload / download) settings</h3>
178
+
179
+ <p> These settings control how the upload and download of LFS content occurs.</p>
180
+
181
+ <ul>
182
+ <li><p><code>lfs.concurrenttransfers</code></p>
183
+
184
+ <p>The number of concurrent uploads/downloads. Default 8.</p></li>
185
+ <li><p><code>lfs.basictransfersonly</code></p>
186
+
187
+ <p>If set to true, only basic HTTP upload/download transfers will be used,
188
+ ignoring any more advanced transfers that the client/server may support.
189
+ This is primarily to work around bugs or incompatibilities.</p>
190
+
191
+ <p>The git-lfs client supports basic HTTP downloads, resumable HTTP downloads
192
+ (using <code>Range</code> headers), and resumable uploads via tus.io protocol. Custom
193
+ transfer methods can be added via <code>lfs.customtransfer</code> (see next section).
194
+ However setting this value to true limits the client to simple HTTP.</p></li>
195
+ <li><p><code>lfs.tustransfers</code></p>
196
+
197
+ <p>If set to true, this enables resumable uploads of LFS objects through the
198
+ tus.io API. Once this feature is finalized, this setting will be removed,
199
+ and tus.io uploads will be available for all clients.</p></li>
200
+ <li><p><code>lfs.standalonetransferagent</code></p>
201
+
202
+ <p>Allows the specified custom transfer agent to be used directly
203
+ for transferring files, without asking the server how the transfers
204
+ should be made. The custom transfer agent has to be defined in a
205
+ <code>lfs.customtransfer.&lt;name></code> settings group.</p></li>
206
+ <li><p><code>lfs.customtransfer.&lt;name>.path</code></p>
207
+
208
+ <p><code>lfs.customtransfer.&lt;name></code> is a settings group which defines a custom
209
+ transfer hook which allows you to upload/download via an intermediate process,
210
+ using any mechanism you like (rather than just HTTP). <code>path</code> should point to
211
+ the process you wish to invoke. The protocol between the git-lfs client and
212
+ the custom transfer process is documented at
213
+ https://github.com/git-lfs/git-lfs/blob/main/docs/custom-transfers.md</p>
214
+
215
+ <p><var>name</var> must be a unique identifier that the LFS server understands. When
216
+ calling the LFS API the client will include a list of supported transfer
217
+ types. If the server also supports this named transfer type, it will select it
218
+ and actions returned from the API will be in relation to that transfer type
219
+ (may not be traditional URLs for example). Only if the server accepts <var>name</var>
220
+ as a transfer it supports will this custom transfer process be invoked.</p></li>
221
+ <li><p><code>lfs.customtransfer.&lt;name>.args</code></p>
222
+
223
+ <p>If the custom transfer process requires any arguments, these can be provided
224
+ here. This string will be expanded by the shell.</p></li>
225
+ <li><p><code>lfs.customtransfer.&lt;name>.concurrent</code></p>
226
+
227
+ <p>If true (the default), git-lfs will invoke the custom transfer process
228
+ multiple times in parallel, according to <code>lfs.concurrenttransfers</code>, splitting
229
+ the transfer workload between the processes.</p></li>
230
+ <li><p><code>lfs.customtransfer.&lt;name>.direction</code></p>
231
+
232
+ <p>Specifies which direction the custom transfer process supports, either
233
+ "download", "upload", or "both". The default if unspecified is "both".</p></li>
234
+ <li><p><code>lfs.transfer.maxretries</code></p>
235
+
236
+ <p>Specifies how many retries LFS will attempt per OID before marking the
237
+ transfer as failed. Must be an integer which is at least one. If the value is
238
+ not an integer, is less than one, or is not given, a value of eight will be
239
+ used instead.</p></li>
240
+ <li><p><code>lfs.transfer.maxretrydelay</code></p>
241
+
242
+ <p>Specifies the maximum time in seconds LFS will wait between each retry
243
+ attempt. LFS uses exponential backoff for retries, doubling the time between
244
+ each retry until reaching this limit. If a server requests a delay using the
245
+ <code>Retry-After</code> header, the header value overrides the exponential delay for
246
+ that attempt and is not limited by this option.</p>
247
+
248
+ <p>Must be an integer which is not negative. Use zero to disable delays between
249
+ retries unless requested by a server. If the value is not an integer, is
250
+ negative, or is not given, a value of ten will be used instead.</p></li>
251
+ <li><p><code>lfs.transfer.maxverifies</code></p>
252
+
253
+ <p>Specifies how many verification requests LFS will attempt per OID before
254
+ marking the transfer as failed, if the object has a verification action
255
+ associated with it. Must be an integer which is at least one. If the value is
256
+ not an integer, is less than one, or is not given, a default value of three
257
+ will be used instead.</p></li>
258
+ <li><p><code>lfs.transfer.enablehrefrewrite</code></p>
259
+
260
+ <p>If set to true, this enables rewriting href of LFS objects using
261
+ <code>url.*.insteadof/pushinsteadof</code> config. <code>pushinsteadof</code> is used only for
262
+ uploading, and <code>insteadof</code> is used for downloading and for uploading when
263
+ <code>pushinsteadof</code> is not set.</p></li>
264
+ </ul>
265
+
266
+
267
+ <h3 id="Push-settings">Push settings</h3>
268
+
269
+ <ul>
270
+ <li><p><code>lfs.allowincompletepush</code></p>
271
+
272
+ <p>When pushing, allow objects to be missing from the local cache without halting
273
+ a Git push. Default: false.</p></li>
274
+ </ul>
275
+
276
+
277
+ <h3 id="Fetch-settings">Fetch settings</h3>
278
+
279
+ <ul>
280
+ <li><p><code>lfs.fetchinclude</code></p>
281
+
282
+ <p>When fetching, only download objects which match any entry on this
283
+ comma-separated list of paths/filenames. Wildcard matching is as per
284
+ <span class="man-ref">git-ignore<span class="s">(1)</span></span>. See <span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span> for examples.</p></li>
285
+ <li><p><code>lfs.fetchexclude</code></p>
286
+
287
+ <p>When fetching, do not download objects which match any item on this
288
+ comma-separated list of paths/filenames. Wildcard matching is as per
289
+ <span class="man-ref">git-ignore<span class="s">(1)</span></span>. See <span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span> for examples.</p></li>
290
+ <li><p><code>lfs.fetchrecentrefsdays</code></p>
291
+
292
+ <p>If non-zero, fetches refs which have commits within N days of the current
293
+ date. Only local refs are included unless lfs.fetchrecentremoterefs is true.
294
+ Also used as a basis for pruning old files.
295
+ The default is 7 days.</p></li>
296
+ <li><p><code>lfs.fetchrecentremoterefs</code></p>
297
+
298
+ <p>If true, fetches remote refs (for the remote you're fetching) as well as local
299
+ refs in the recent window. This is useful to fetch objects for remote branches
300
+ you might want to check out later. The default is true; if you set this to
301
+ false, fetching for those branches will only occur when you either check them
302
+ out (losing the advantage of fetch --recent), or create a tracking local
303
+ branch separately then fetch again.</p></li>
304
+ <li><p><code>lfs.fetchrecentcommitsdays</code></p>
305
+
306
+ <p>In addition to fetching at refs, also fetches previous changes made within N
307
+ days of the latest commit on the ref. This is useful if you're often reviewing
308
+ recent changes. Also used as a basis for pruning old files.
309
+ The default is 0 (no previous changes).</p></li>
310
+ <li><p><code>lfs.fetchrecentalways</code></p>
311
+
312
+ <p>Always operate as if --recent was included in a <code>git lfs fetch</code> call. Default
313
+ false.</p></li>
314
+ </ul>
315
+
316
+
317
+ <h3 id="Prune-settings">Prune settings</h3>
318
+
319
+ <ul>
320
+ <li><p><code>lfs.pruneoffsetdays</code></p>
321
+
322
+ <p>The number of days added to the <code>lfs.fetchrecent*</code> settings to determine what
323
+ can be pruned. Default is 3 days, i.e. that anything fetched at the very
324
+ oldest edge of the 'recent window' is eligible for pruning 3 days later.</p></li>
325
+ <li><p><code>lfs.pruneremotetocheck</code></p>
326
+
327
+ <p>Set the remote that LFS files must have been pushed to in order for them to
328
+ be considered eligible for local pruning. Also the remote which is called if
329
+ --verify-remote is enabled.</p></li>
330
+ <li><p><code>lfs.pruneverifyremotealways</code></p>
331
+
332
+ <p>Always run <code>git lfs prune</code> as if <code>--verify-remote</code> was provided.</p></li>
333
+ </ul>
334
+
335
+
336
+ <h3 id="Extensions">Extensions</h3>
337
+
338
+ <ul>
339
+ <li><p><code>lfs.extension.&lt;name>.&lt;setting></code></p>
340
+
341
+ <p>Git LFS extensions enable the manipulation of files streams during smudge and
342
+ clean. <code>name</code> groups the settings for a single extension, and the settings
343
+ are:</p>
344
+
345
+ <ul>
346
+ <li><code>clean</code> The command which runs when files are added to the index</li>
347
+ <li><code>smudge</code> The command which runs when files are written to the working copy</li>
348
+ <li><code>priority</code> The order of this extension compared to others</li>
349
+ </ul>
350
+ </li>
351
+ </ul>
352
+
353
+
354
+ <h3 id="Other-settings">Other settings</h3>
355
+
356
+ <ul>
357
+ <li><p><code>lfs.&lt;url>.access</code></p>
358
+
359
+ <p>Note: this setting is normally set by LFS itself on receiving a 401 response
360
+ (authentication required), you don't normally need to set it manually.</p>
361
+
362
+ <p>If set to "basic" then credentials will be requested before making batch
363
+ requests to this url, otherwise a public request will initially be attempted.</p></li>
364
+ <li><p><code>lfs.&lt;url>.locksverify</code></p>
365
+
366
+ <p>Determines whether locks are checked before Git pushes. This prevents you from
367
+ pushing changes to files that other users have locked. The Git LFS pre-push
368
+ hook varies its behavior based on the value of this config key.</p>
369
+
370
+ <ul>
371
+ <li><code>null</code> - In the absence of a value, Git LFS will attempt the call, and warn
372
+ if it returns an error. If the response is valid, Git LFS will set the value
373
+ to <code>true</code>, and will halt the push if the user attempts to update a file locked
374
+ by another user. If the server returns a <code>501 Not Implemented</code> response, Git
375
+ LFS will set the value to <code>false.</code></li>
376
+ <li><code>true</code> - Git LFS will attempt to verify locks, halting the Git push if there
377
+ are any server issues, or if the user attempts to update a file locked by
378
+ another user.</li>
379
+ <li><code>false</code> - Git LFS will completely skip the lock check in the pre-push hook.
380
+ You should set this if you're not using File Locking, or your Git server
381
+ verifies locked files on pushes automatically.</li>
382
+ </ul>
383
+
384
+
385
+ <p>Supports URL config lookup as described in:
386
+ https://git-scm.com/docs/git-config#git-config-httplturlgt. To set this value
387
+ per-host: <code>git config --global lfs.https://github.com/.locksverify [true|false]</code>.</p></li>
388
+ <li><p><code>lfs.&lt;url>.contenttype</code></p>
389
+
390
+ <p>Determines whether Git LFS should attempt to detect an appropriate HTTP
391
+ <code>Content-Type</code> header when uploading using the 'basic' upload adapter. If set
392
+ to false, the default header of <code>Content-Type: application/octet-stream</code> is
393
+ chosen instead. Default: 'true'.</p></li>
394
+ <li><p><code>lfs.skipdownloaderrors</code></p>
395
+
396
+ <p>Causes Git LFS not to abort the smudge filter when a download error is
397
+ encountered, which allows actions such as checkout to work when you are unable
398
+ to download the LFS content. LFS files which could not download will contain
399
+ pointer content instead.</p>
400
+
401
+ <p>Note that this will result in git commands which call the smudge filter to
402
+ report success even in cases when LFS downloads fail, which may affect
403
+ scripts.</p>
404
+
405
+ <p>You can also set the environment variable GIT_LFS_SKIP_DOWNLOAD_ERRORS=1 to
406
+ get the same effect.</p></li>
407
+ <li><p><code>GIT_LFS_PROGRESS</code></p>
408
+
409
+ <p>This environment variable causes Git LFS to emit progress updates to an
410
+ absolute file-path on disk when cleaning, smudging, or fetching.</p>
411
+
412
+ <p>Progress is reported periodically in the form of a new line being appended to
413
+ the end of the file. Each new line will take the following format:</p>
414
+
415
+ <p><code>&lt;direction> &lt;current>/&lt;total files> &lt;downloaded>/&lt;total> &lt;name></code></p>
416
+
417
+ <p>Each field is described below:</p>
418
+
419
+ <ul>
420
+ <li><code>direction</code>: The direction of transfer, either "checkout", "download", or
421
+ "upload".</li>
422
+ <li><code>current</code> The index of the currently transferring file.</li>
423
+ <li><code>total files</code> The estimated count of all files to be transferred.</li>
424
+ <li><code>downloaded</code> The number of bytes already downloaded.</li>
425
+ <li><code>total</code> The entire size of the file, in bytes.</li>
426
+ <li><code>name</code> The name of the file.</li>
427
+ </ul>
428
+ </li>
429
+ <li><p><code>GIT_LFS_FORCE_PROGRESS</code>
430
+ <code>lfs.forceprogress</code></p>
431
+
432
+ <p>Controls whether Git LFS will suppress progress status when the standard
433
+ output stream is not attached to a terminal. The default is <code>false</code> which
434
+ makes Git LFS detect whether stdout is a terminal and suppress progress when
435
+ it's not; you can disable this behaviour and force progress status even when
436
+ standard output stream is not a terminal by setting either variable to 1,
437
+ 'yes' or 'true'.</p></li>
438
+ <li><p><code>GIT_LFS_SKIP_SMUDGE</code></p>
439
+
440
+ <p>Sets whether or not Git LFS will skip attempting to convert pointers of files
441
+ tracked into their corresponding objects when checked out into a working copy.
442
+ If 'true', '1', 'on', or similar, Git LFS will skip the smudge process in both
443
+ <code>git lfs smudge</code> and <code>git lfs filter-process</code>. If unset, or set to 'false',
444
+ '0', 'off', or similar, Git LFS will smudge files as normal.</p></li>
445
+ <li><p><code>GIT_LFS_SKIP_PUSH</code></p>
446
+
447
+ <p>Sets whether or not Git LFS will attempt to upload new Git LFS object in a
448
+ pre-push hook. If 'true', '1', 'on', or similar, Git LFS will skip the
449
+ pre-push hook, so no new Git LFS objects will be uploaded. If unset, or set to
450
+ 'false', '0', 'off', or similar, Git LFS will proceed as normal.</p></li>
451
+ <li><p><code>GIT_LFS_SET_LOCKABLE_READONLY</code>
452
+ <code>lfs.setlockablereadonly</code></p>
453
+
454
+ <p>These settings, the first an environment variable and the second a gitconfig
455
+ setting, control whether files marked as 'lockable' in <code>git lfs track</code> are
456
+ made read-only in the working copy when not locked by the current user.
457
+ The default is <code>true</code>; you can disable this behaviour and have all files
458
+ writeable by setting either variable to 0, 'no' or 'false'.</p></li>
459
+ <li><p><code>lfs.lockignoredfiles</code></p>
460
+
461
+ <p>This setting controls whether Git LFS will set ignored files that match the
462
+ lockable pattern read only as well as tracked files. The default is <code>false</code>;
463
+ you can enable this behavior by setting the variable to 1, 'yes', or 'true'.</p></li>
464
+ <li><p><code>lfs.defaulttokenttl</code></p>
465
+
466
+ <p>This setting sets a default token TTL when git-lfs-authenticate does not
467
+ include the TTL in the JSON response but still enforces it.</p>
468
+
469
+ <p>Note that this is only necessary for larger repositories hosted on LFS
470
+ servers that don't include the TTL.</p></li>
471
+ </ul>
472
+
473
+
474
+ <h2 id="LFSCONFIG">LFSCONFIG</h2>
475
+
476
+ <p>The .lfsconfig file in a repository is read and interpreted in the same format
477
+ as the file stored in .git/config. It allows a subset of keys to be used,
478
+ including and limited to:</p>
479
+
480
+ <ul>
481
+ <li>lfs.allowincompletepush</li>
482
+ <li>lfs.fetchexclude</li>
483
+ <li>lfs.fetchinclude</li>
484
+ <li>lfs.gitprotocol</li>
485
+ <li>lfs.locksverify</li>
486
+ <li>lfs.pushurl</li>
487
+ <li>lfs.skipdownloaderrors</li>
488
+ <li>lfs.url</li>
489
+ <li>lfs.{*}.access</li>
490
+ <li>remote.{name}.lfsurl</li>
491
+ </ul>
492
+
493
+
494
+ <p>The set of keys allowed in this file is restricted for security reasons.</p>
495
+
496
+ <h2 id="EXAMPLES">EXAMPLES</h2>
497
+
498
+ <dl>
499
+ <dt>Configure a custom LFS endpoint for your repository:</dt><dd></dd>
500
+ </dl>
501
+
502
+
503
+ <p> <code>git config -f .lfsconfig lfs.url https://lfs.example.com/foo/bar/info/lfs</code></p>
504
+
505
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
506
+
507
+ <p><span class="man-ref">git-config<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-install<span class="s">(1)</span></span>, <span class="man-ref">gitattributes<span class="s">(5)</span></span></p>
508
+
509
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
510
+
511
+
512
+ <ol class='man-decor man-foot man foot'>
513
+ <li class='tl'></li>
514
+ <li class='tc'>October 2021</li>
515
+ <li class='tr'>git-lfs-config(5)</li>
516
+ </ol>
517
+
518
+ </div>
519
+ </body>
520
+ </html>
man/git-lfs-env.1 ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-ENV" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-env\fR \- Display the Git LFS environment
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs env\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Display the current Git LFS environment\.
14
+ .
15
+ .SH "SEE ALSO"
16
+ Part of the git\-lfs(1) suite\.
man/git-lfs-env.1.html ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-env(1) - Display the Git LFS environment</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#SEE-ALSO">SEE ALSO</a>
60
+ </div>
61
+
62
+ <ol class='man-decor man-head man head'>
63
+ <li class='tl'>git-lfs-env(1)</li>
64
+ <li class='tc'></li>
65
+ <li class='tr'>git-lfs-env(1)</li>
66
+ </ol>
67
+
68
+ <h2 id="NAME">NAME</h2>
69
+ <p class="man-name">
70
+ <code>git-lfs-env</code> - <span class="man-whatis">Display the Git LFS environment</span>
71
+ </p>
72
+
73
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
74
+
75
+ <p><code>git lfs env</code></p>
76
+
77
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
78
+
79
+ <p>Display the current Git LFS environment.</p>
80
+
81
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
82
+
83
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
84
+
85
+
86
+ <ol class='man-decor man-foot man foot'>
87
+ <li class='tl'></li>
88
+ <li class='tc'>October 2021</li>
89
+ <li class='tr'>git-lfs-env(1)</li>
90
+ </ol>
91
+
92
+ </div>
93
+ </body>
94
+ </html>
man/git-lfs-ext.1 ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-EXT" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-ext\fR \- View extension details
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs ext list\fR [\fIname\fR\.\.\.]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Git LFS extensions enable the manipulation of files streams during smudge and clean\.
14
+ .
15
+ .SH "EXAMPLES"
16
+ .
17
+ .IP "\(bu" 4
18
+ List details for all extensions
19
+ .
20
+ .IP
21
+ \fBgit lfs ext\fR \fBgit lfs ext list\fR
22
+ .
23
+ .IP "\(bu" 4
24
+ List details for the specified extensions
25
+ .
26
+ .IP
27
+ \fBgit lfs ext list \'foo\' \'bar\'\fR
28
+ .
29
+ .IP "" 0
30
+ .
31
+ .SH "SEE ALSO"
32
+ Part of the git\-lfs(1) suite\.
man/git-lfs-ext.1.html ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-ext(1) - View extension details</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#EXAMPLES">EXAMPLES</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-ext(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-ext(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-ext</code> - <span class="man-whatis">View extension details</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs ext list</code> [<var>name</var>...]</p>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+
80
+ <p>Git LFS extensions enable the manipulation of files streams
81
+ during smudge and clean.</p>
82
+
83
+ <h2 id="EXAMPLES">EXAMPLES</h2>
84
+
85
+ <ul>
86
+ <li><p>List details for all extensions</p>
87
+
88
+ <p> <code>git lfs ext</code>
89
+ <code>git lfs ext list</code></p></li>
90
+ <li><p>List details for the specified extensions</p>
91
+
92
+ <p> <code>git lfs ext list 'foo' 'bar'</code></p></li>
93
+ </ul>
94
+
95
+
96
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
97
+
98
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
99
+
100
+
101
+ <ol class='man-decor man-foot man foot'>
102
+ <li class='tl'></li>
103
+ <li class='tc'>October 2021</li>
104
+ <li class='tr'>git-lfs-ext(1)</li>
105
+ </ol>
106
+
107
+ </div>
108
+ </body>
109
+ </html>
man/git-lfs-fetch.1 ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-FETCH" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-fetch\fR \- Download all Git LFS files for a given ref
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs fetch\fR [options] [\fIremote\fR [\fIref\fR\.\.\.]]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Download Git LFS objects at the given refs from the specified remote\. See \fIDEFAULT REMOTE\fR and \fIDEFAULT REFS\fR for what happens if you don\'t specify\.
14
+ .
15
+ .P
16
+ This does not update the working copy\.
17
+ .
18
+ .SH "OPTIONS"
19
+ .
20
+ .TP
21
+ \fB\-I\fR \fIpaths\fR \fB\-\-include=\fR\fIpaths\fR
22
+ Specify lfs\.fetchinclude just for this invocation; see \fIINCLUDE AND EXCLUDE\fR
23
+ .
24
+ .TP
25
+ \fB\-X\fR \fIpaths\fR \fB\-\-exclude=\fR\fIpaths\fR
26
+ Specify lfs\.fetchexclude just for this invocation; see \fIINCLUDE AND EXCLUDE\fR
27
+ .
28
+ .TP
29
+ \fB\-\-recent\fR
30
+ Download objects referenced by recent branches & commits in addition to those that would otherwise be downloaded\. See \fIRECENT CHANGES\fR
31
+ .
32
+ .TP
33
+ \fB\-\-all\fR
34
+ 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\.
35
+ .
36
+ .TP
37
+ \fB\-\-prune\fR \fB\-p\fR
38
+ Prune old and unreferenced objects after fetching, equivalent to running \fBgit lfs prune\fR afterwards\. See git\-lfs\-prune(1) for more details\.
39
+ .
40
+ .SH "INCLUDE AND EXCLUDE"
41
+ 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\.
42
+ .
43
+ .P
44
+ In gitconfig, set \fBlfs\.fetchinclude\fR and \fBlfs\.fetchexclude\fR to comma\-separated lists of paths to include/exclude in the fetch\. Only paths which are matched by \fBfetchinclude\fR and not matched by \fBfetchexclude\fR will have objects fetched for them\.
45
+ .
46
+ .P
47
+ Note that using the command\-line options \fB\-I\fR and \fB\-X\fR override the respective configuration settings\. Setting either option to an empty string clears the value\.
48
+ .
49
+ .SS "Examples:"
50
+ .
51
+ .IP "\(bu" 4
52
+ \fBgit config lfs\.fetchinclude "textures,images/foo*"\fR
53
+ .
54
+ .IP
55
+ This will only fetch objects referenced in paths in the textures folder, and files called foo* in the images folder
56
+ .
57
+ .IP "\(bu" 4
58
+ \fBgit config lfs\.fetchinclude "*\.jpg,*\.png,*\.tga"\fR
59
+ .
60
+ .IP
61
+ Only fetch JPG/PNG/TGA files, wherever they are in the repository
62
+ .
63
+ .IP "\(bu" 4
64
+ \fBgit config lfs\.fetchexclude "media/reallybigfiles"\fR
65
+ .
66
+ .IP
67
+ Don\'t fetch any LFS objects referenced in the folder media/reallybigfiles, but fetch everything else
68
+ .
69
+ .IP "\(bu" 4
70
+ \fBgit config lfs\.fetchinclude "media"\fR
71
+ .
72
+ .br
73
+ \fBgit config lfs\.fetchexclude "media/excessive"\fR
74
+ .
75
+ .IP
76
+ Only fetch LFS objects in the \'media\' folder, but exclude those in one of its subfolders\.
77
+ .
78
+ .IP "" 0
79
+ .
80
+ .SH "DEFAULT REMOTE"
81
+ Without arguments, fetch downloads from the default remote\. The default remote is the same as for \fBgit fetch\fR, i\.e\. based on the remote branch you\'re tracking first, or origin otherwise\.
82
+ .
83
+ .SH "DEFAULT REFS"
84
+ 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 \fIRECENT CHANGES\fR for details\.
85
+ .
86
+ .SH "RECENT CHANGES"
87
+ If the \fB\-\-recent\fR option is specified, or if the gitconfig option \fBlfs\.fetchrecentalways\fR 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\.
88
+ .
89
+ .P
90
+ What changes are considered \'recent\' is based on a number of gitconfig options:
91
+ .
92
+ .IP "\(bu" 4
93
+ \fBlfs\.fetchrecentrefsdays\fR 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\.
94
+ .
95
+ .IP "\(bu" 4
96
+ \fBlfs\.fetchrecentremoterefs\fR 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\.
97
+ .
98
+ .IP "\(bu" 4
99
+ \fBlfs\.fetchrecentcommitsdays\fR 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)\.
100
+ .
101
+ .IP "\(bu" 4
102
+ \fBlfs\.fetchrecentalways\fR Always operate as if \-\-recent was provided on the command line\.
103
+ .
104
+ .IP "" 0
105
+ .
106
+ .SH "EXAMPLES"
107
+ .
108
+ .IP "\(bu" 4
109
+ Fetch the LFS objects for the current ref from default remote
110
+ .
111
+ .IP
112
+ \fBgit lfs fetch\fR
113
+ .
114
+ .IP "\(bu" 4
115
+ Fetch the LFS objects for the current ref AND recent changes from default remote
116
+ .
117
+ .IP
118
+ \fBgit lfs fetch \-\-recent\fR
119
+ .
120
+ .IP "\(bu" 4
121
+ Fetch the LFS objects for the current ref from a secondary remote \'upstream\'
122
+ .
123
+ .IP
124
+ \fBgit lfs fetch upstream\fR
125
+ .
126
+ .IP "\(bu" 4
127
+ Fetch all the LFS objects from the default remote that are referenced by any commit in the \fBmain\fR and \fBdevelop\fR branches
128
+ .
129
+ .IP
130
+ \fBgit lfs fetch \-\-all origin main develop\fR
131
+ .
132
+ .IP "\(bu" 4
133
+ Fetch the LFS objects for a branch from origin
134
+ .
135
+ .IP
136
+ \fBgit lfs fetch origin mybranch\fR
137
+ .
138
+ .IP "\(bu" 4
139
+ Fetch the LFS objects for 2 branches and a commit from origin
140
+ .
141
+ .IP
142
+ \fBgit lfs fetch origin main mybranch e445b45c1c9c6282614f201b62778e4c0688b5c8\fR
143
+ .
144
+ .IP "" 0
145
+ .
146
+ .SH "SEE ALSO"
147
+ git\-lfs\-checkout(1), git\-lfs\-pull(1), git\-lfs\-prune(1)\.
148
+ .
149
+ .P
150
+ Part of the git\-lfs(1) suite\.
man/git-lfs-fetch.1.html ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-fetch(1) - Download all Git LFS files for a given ref</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</a>
61
+ <a href="#DEFAULT-REMOTE">DEFAULT REMOTE</a>
62
+ <a href="#DEFAULT-REFS">DEFAULT REFS</a>
63
+ <a href="#RECENT-CHANGES">RECENT CHANGES</a>
64
+ <a href="#EXAMPLES">EXAMPLES</a>
65
+ <a href="#SEE-ALSO">SEE ALSO</a>
66
+ </div>
67
+
68
+ <ol class='man-decor man-head man head'>
69
+ <li class='tl'>git-lfs-fetch(1)</li>
70
+ <li class='tc'></li>
71
+ <li class='tr'>git-lfs-fetch(1)</li>
72
+ </ol>
73
+
74
+ <h2 id="NAME">NAME</h2>
75
+ <p class="man-name">
76
+ <code>git-lfs-fetch</code> - <span class="man-whatis">Download all Git LFS files for a given ref</span>
77
+ </p>
78
+
79
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
80
+
81
+ <p><code>git lfs fetch</code> [options] [<var>remote</var> [<var>ref</var>...]]</p>
82
+
83
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
84
+
85
+ <p>Download Git LFS objects at the given refs from the specified remote. See
86
+ <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>
87
+
88
+ <p>This does not update the working copy.</p>
89
+
90
+ <h2 id="OPTIONS">OPTIONS</h2>
91
+
92
+ <dl>
93
+ <dt><code>-I</code> <var>paths</var> <code>--include=</code><var>paths</var></dt><dd><p>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></p></dd>
94
+ <dt><code>-X</code> <var>paths</var> <code>--exclude=</code><var>paths</var></dt><dd><p>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></p></dd>
95
+ <dt><code>--recent</code></dt><dd><p>Download objects referenced by recent branches &amp; commits in addition to those
96
+ that would otherwise be downloaded. See <a href="#RECENT-CHANGES" title="RECENT CHANGES" data-bare-link="true">RECENT CHANGES</a></p></dd>
97
+ <dt class="flush"><code>--all</code></dt><dd><p>Download all objects that are referenced by any commit reachable from the refs
98
+ provided as arguments. If no refs are provided, then all refs are fetched.
99
+ This is primarily for backup and migration purposes. Cannot be combined with
100
+ --recent or --include/--exclude. Ignores any globally configured include and
101
+ exclude paths to ensure that all objects are downloaded.</p></dd>
102
+ <dt><code>--prune</code> <code>-p</code></dt><dd><p>Prune old and unreferenced objects after fetching, equivalent to running
103
+ <code>git lfs prune</code> afterwards. See <span class="man-ref">git-lfs-prune<span class="s">(1)</span></span> for more details.</p></dd>
104
+ </dl>
105
+
106
+
107
+ <h2 id="INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</h2>
108
+
109
+ <p>You can configure Git LFS to only fetch objects to satisfy references in certain
110
+ paths of the repo, and/or to exclude certain paths of the repo, to reduce the
111
+ time you spend downloading things you do not use.</p>
112
+
113
+ <p>In gitconfig, set <code>lfs.fetchinclude</code> and <code>lfs.fetchexclude</code> to comma-separated
114
+ lists of paths to include/exclude in the fetch. Only paths which are matched by
115
+ <code>fetchinclude</code> and not matched by <code>fetchexclude</code> will have objects fetched for
116
+ them.</p>
117
+
118
+ <p>Note that using the command-line options <code>-I</code> and <code>-X</code> override the respective
119
+ configuration settings. Setting either option to an empty string clears the
120
+ value.</p>
121
+
122
+ <h3 id="Examples-">Examples:</h3>
123
+
124
+ <ul>
125
+ <li><p><code>git config lfs.fetchinclude "textures,images/foo*"</code></p>
126
+
127
+ <p>This will only fetch objects referenced in paths in the textures folder, and
128
+ files called foo* in the images folder</p></li>
129
+ <li><p><code>git config lfs.fetchinclude "*.jpg,*.png,*.tga"</code></p>
130
+
131
+ <p>Only fetch JPG/PNG/TGA files, wherever they are in the repository</p></li>
132
+ <li><p><code>git config lfs.fetchexclude "media/reallybigfiles"</code></p>
133
+
134
+ <p>Don't fetch any LFS objects referenced in the folder media/reallybigfiles, but
135
+ fetch everything else</p></li>
136
+ <li><p><code>git config lfs.fetchinclude "media"</code><br />
137
+ <code>git config lfs.fetchexclude "media/excessive"</code></p>
138
+
139
+ <p>Only fetch LFS objects in the 'media' folder, but exclude those in one of its
140
+ subfolders.</p></li>
141
+ </ul>
142
+
143
+
144
+ <h2 id="DEFAULT-REMOTE">DEFAULT REMOTE</h2>
145
+
146
+ <p>Without arguments, fetch downloads from the default remote. The default remote
147
+ is the same as for <code>git fetch</code>, i.e. based on the remote branch you're tracking
148
+ first, or origin otherwise.</p>
149
+
150
+ <h2 id="DEFAULT-REFS">DEFAULT REFS</h2>
151
+
152
+ <p>If no refs are given as arguments, the currently checked out ref is used. In
153
+ addition, if enabled, recently changed refs and commits are also
154
+ included. See <a href="#RECENT-CHANGES" title="RECENT CHANGES" data-bare-link="true">RECENT CHANGES</a> for details.</p>
155
+
156
+ <h2 id="RECENT-CHANGES">RECENT CHANGES</h2>
157
+
158
+ <p>If the <code>--recent</code> option is specified, or if the gitconfig option
159
+ <code>lfs.fetchrecentalways</code> is true, then after the current ref (or those in the
160
+ arguments) is fetched, we also search for 'recent' changes to fetch
161
+ objects for, so that it's more convenient to checkout or diff those commits
162
+ without incurring further downloads.</p>
163
+
164
+ <p>What changes are considered 'recent' is based on a number of gitconfig options:</p>
165
+
166
+ <ul>
167
+ <li><p><code>lfs.fetchrecentrefsdays</code>
168
+ If non-zero, includes branches which have commits within N days of the current
169
+ date. Only local refs are included unless lfs.fetchrecentremoterefs is true.
170
+ The default is 7 days.</p></li>
171
+ <li><p><code>lfs.fetchrecentremoterefs</code>
172
+ If true, fetches remote refs (for the remote you're fetching) as well as local
173
+ refs in the recent window. This is useful to fetch objects for remote branches
174
+ you might want to check out later. The default is true; if you set this to
175
+ false, fetching for those branches will only occur when you either check them
176
+ out (losing the advantage of fetch --recent), or create a tracking local
177
+ branch separately then fetch again.</p></li>
178
+ <li><p><code>lfs.fetchrecentcommitsdays</code>
179
+ In addition to fetching at branches, also fetches changes made within N
180
+ days of the latest commit on the branch. This is useful if you're often
181
+ reviewing recent changes. The default is 0 (no previous changes).</p></li>
182
+ <li><p><code>lfs.fetchrecentalways</code>
183
+ Always operate as if --recent was provided on the command line.</p></li>
184
+ </ul>
185
+
186
+
187
+ <h2 id="EXAMPLES">EXAMPLES</h2>
188
+
189
+ <ul>
190
+ <li><p>Fetch the LFS objects for the current ref from default remote</p>
191
+
192
+ <p><code>git lfs fetch</code></p></li>
193
+ <li><p>Fetch the LFS objects for the current ref AND recent changes from default
194
+ remote</p>
195
+
196
+ <p><code>git lfs fetch --recent</code></p></li>
197
+ <li><p>Fetch the LFS objects for the current ref from a secondary remote 'upstream'</p>
198
+
199
+ <p><code>git lfs fetch upstream</code></p></li>
200
+ <li><p>Fetch all the LFS objects from the default remote that are referenced by any
201
+ commit in the <code>main</code> and <code>develop</code> branches</p>
202
+
203
+ <p><code>git lfs fetch --all origin main develop</code></p></li>
204
+ <li><p>Fetch the LFS objects for a branch from origin</p>
205
+
206
+ <p><code>git lfs fetch origin mybranch</code></p></li>
207
+ <li><p>Fetch the LFS objects for 2 branches and a commit from origin</p>
208
+
209
+ <p><code>git lfs fetch origin main mybranch e445b45c1c9c6282614f201b62778e4c0688b5c8</code></p></li>
210
+ </ul>
211
+
212
+
213
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
214
+
215
+ <p><span class="man-ref">git-lfs-checkout<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-pull<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-prune<span class="s">(1)</span></span>.</p>
216
+
217
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
218
+
219
+
220
+ <ol class='man-decor man-foot man foot'>
221
+ <li class='tl'></li>
222
+ <li class='tc'>October 2021</li>
223
+ <li class='tr'>git-lfs-fetch(1)</li>
224
+ </ol>
225
+
226
+ </div>
227
+ </body>
228
+ </html>
man/git-lfs-filter-process.1 ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-FILTER\-PROCESS" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-filter\-process\fR \- Git filter process that converts between pointer and actual content
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs filter\-process\fR \fBgit lfs filter\-process \-\-skip\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Implement the Git process filter API, exchanging handshake messages and then accepting and responding to requests to either clean or smudge a file\.
14
+ .
15
+ .P
16
+ filter\-process is always run by Git\'s filter process, and is configured by the repository\'s Git attributes\.
17
+ .
18
+ .P
19
+ The filter process uses Git\'s pkt\-line protocol to communicate, and is documented in detail in gitattributes(5)\.
20
+ .
21
+ .SH "OPTIONS"
22
+ Without any options, filter\-process accepts and responds to requests normally\.
23
+ .
24
+ .TP
25
+ \fB\-\-skip\fR
26
+ Skip automatic downloading of objects on clone or pull\.
27
+ .
28
+ .TP
29
+ \fBGIT_LFS_SKIP_SMUDGE\fR
30
+ Disables the smudging process\. For more, see: git\-lfs\-config(5)\.
31
+ .
32
+ .SH "SEE ALSO"
33
+ git\-lfs\-clean(1), git\-lfs\-install(1), git\-lfs\-smudge(1), gitattributes(5)\.
34
+ .
35
+ .P
36
+ Part of the git\-lfs(1) suite\.
man/git-lfs-filter-process.1.html ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-filter-process(1) - Git filter process that converts between pointer and actual content</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-filter-process(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-filter-process(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-filter-process</code> - <span class="man-whatis">Git filter process that converts between pointer and actual content</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs filter-process</code>
77
+ <code>git lfs filter-process --skip</code></p>
78
+
79
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
80
+
81
+ <p>Implement the Git process filter API, exchanging handshake messages and then
82
+ accepting and responding to requests to either clean or smudge a file.</p>
83
+
84
+ <p>filter-process is always run by Git's filter process, and is configured by the
85
+ repository's Git attributes.</p>
86
+
87
+ <p>The filter process uses Git's pkt-line protocol to communicate, and is
88
+ documented in detail in <span class="man-ref">gitattributes<span class="s">(5)</span></span>.</p>
89
+
90
+ <h2 id="OPTIONS">OPTIONS</h2>
91
+
92
+ <p>Without any options, filter-process accepts and responds to requests normally.</p>
93
+
94
+ <dl>
95
+ <dt class="flush"><code>--skip</code></dt><dd><p> Skip automatic downloading of objects on clone or pull.</p></dd>
96
+ <dt><code>GIT_LFS_SKIP_SMUDGE</code></dt><dd><p> Disables the smudging process. For more, see: <span class="man-ref">git-lfs-config<span class="s">(5)</span></span>.</p></dd>
97
+ </dl>
98
+
99
+
100
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
101
+
102
+ <p><span class="man-ref">git-lfs-clean<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-install<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-smudge<span class="s">(1)</span></span>, <span class="man-ref">gitattributes<span class="s">(5)</span></span>.</p>
103
+
104
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
105
+
106
+
107
+ <ol class='man-decor man-foot man foot'>
108
+ <li class='tl'></li>
109
+ <li class='tc'>October 2021</li>
110
+ <li class='tr'>git-lfs-filter-process(1)</li>
111
+ </ol>
112
+
113
+ </div>
114
+ </body>
115
+ </html>
man/git-lfs-fsck.1 ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-FSCK" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-fsck\fR \- Check GIT LFS files for consistency
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs fsck\fR [options] [revisions]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Checks all GIT LFS files in the current HEAD for consistency\.
14
+ .
15
+ .P
16
+ Corrupted files are moved to "\.git/lfs/bad"\.
17
+ .
18
+ .P
19
+ The revisions may be specified as either a single committish, in which case only that commit is inspected; specified as a range of the form \fBA\.\.B\fR (and only this form), in which case that range is inspected; or omitted entirely, in which case HEAD (and, for \-\-objects, the index) is examined\.
20
+ .
21
+ .P
22
+ The default is to perform all checks\.
23
+ .
24
+ .SH "OPTIONS"
25
+ .
26
+ .TP
27
+ \fB\-\-objects\fR
28
+ Check that each object in HEAD matches its expected hash and that each object exists on disk\.
29
+ .
30
+ .TP
31
+ \fB\-\-pointers\fR
32
+ Check that each pointer is canonical and that each file which should be stored as a Git LFS file is so stored\.
33
+ .
34
+ .SH "SEE ALSO"
35
+ git\-lfs\-ls\-files(1), git\-lfs\-status(1)\.
36
+ .
37
+ .P
38
+ Part of the git\-lfs(1) suite\.
man/git-lfs-fsck.1.html ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-fsck(1) - Check GIT LFS files for consistency</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-fsck(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-fsck(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-fsck</code> - <span class="man-whatis">Check GIT LFS files for consistency</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs fsck</code> [options] [revisions]</p>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+
80
+ <p>Checks all GIT LFS files in the current HEAD for consistency.</p>
81
+
82
+ <p>Corrupted files are moved to ".git/lfs/bad".</p>
83
+
84
+ <p>The revisions may be specified as either a single committish, in which case only
85
+ that commit is inspected; specified as a range of the form <code>A..B</code> (and only this
86
+ form), in which case that range is inspected; or omitted entirely, in which case
87
+ HEAD (and, for --objects, the index) is examined.</p>
88
+
89
+ <p>The default is to perform all checks.</p>
90
+
91
+ <h2 id="OPTIONS">OPTIONS</h2>
92
+
93
+ <dl>
94
+ <dt><code>--objects</code></dt><dd>Check that each object in HEAD matches its expected hash and that each object
95
+ exists on disk.</dd>
96
+ <dt><code>--pointers</code></dt><dd>Check that each pointer is canonical and that each file which should be stored
97
+ as a Git LFS file is so stored.</dd>
98
+ </dl>
99
+
100
+
101
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
102
+
103
+ <p><span class="man-ref">git-lfs-ls-files<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-status<span class="s">(1)</span></span>.</p>
104
+
105
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
106
+
107
+
108
+ <ol class='man-decor man-foot man foot'>
109
+ <li class='tl'></li>
110
+ <li class='tc'>October 2021</li>
111
+ <li class='tr'>git-lfs-fsck(1)</li>
112
+ </ol>
113
+
114
+ </div>
115
+ </body>
116
+ </html>
man/git-lfs-install.1 ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-INSTALL" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-install\fR \- Install Git LFS configuration\.
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs install\fR \fIoptions\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Perform the following actions to ensure that Git LFS is setup properly:
14
+ .
15
+ .IP "\(bu" 4
16
+ Set up the clean and smudge filters under the name "lfs" in the global Git config\.
17
+ .
18
+ .IP "\(bu" 4
19
+ Install a pre\-push hook to run git\-lfs\-pre\-push(1) for the current repository, if run from inside one\. If "core\.hooksPath" is configured in any Git configuration (and supported, i\.e\., the installed Git version is at least 2\.9\.0), then the pre\-push hook will be installed to that directory instead\.
20
+ .
21
+ .IP "" 0
22
+ .
23
+ .SH "OPTIONS"
24
+ Without any options, \fBgit lfs install\fR will only setup the "lfs" smudge and clean filters if they are not already set\.
25
+ .
26
+ .TP
27
+ \fB\-\-force\fR
28
+ Sets the "lfs" smudge and clean filters, overwriting existing values\.
29
+ .
30
+ .TP
31
+ \fB\-\-local\fR
32
+ Sets the "lfs" smudge and clean filters in the local repository\'s git config, instead of the global git config (~/\.gitconfig)\.
33
+ .
34
+ .TP
35
+ \fB\-\-worktree\fR
36
+ Sets the "lfs" smudge and clean filters in the current working tree\'s git config, instead of the global git config (~/\.gitconfig) or local repository\'s git config ($GIT_DIR/config)\. If multiple working trees are in use, the Git config extension \fBworktreeConfig\fR must be enabled to use this option\. If only one working tree is in use, \fB\-\-worktree\fR has the same effect as \fB\-\-local\fR\. This option is only available if the installed Git version is at least 2\.20\.0 and therefore supports the "worktreeConfig" extension\.
37
+ .
38
+ .TP
39
+ \fB\-\-manual\fR
40
+ Print instructions for manually updating your hooks to include git\-lfs functionality\. Use this option if \fBgit lfs install\fR fails because of existing hooks and you want to retain their functionality\.
41
+ .
42
+ .TP
43
+ \fB\-\-system\fR
44
+ Sets the "lfs" smudge and clean filters in the system git config, e\.g\. /etc/gitconfig instead of the global git config (~/\.gitconfig)\.
45
+ .
46
+ .TP
47
+ \fB\-\-skip\-smudge\fR
48
+ Skips automatic downloading of objects on clone or pull\. This requires a manual "git lfs pull" every time a new commit is checked out on your repository\.
49
+ .
50
+ .TP
51
+ \fB\-\-skip\-repo\fR
52
+ Skips setup of the local repo; use if you want to install the global lfs filters but not make changes to the current repo\.
53
+ .
54
+ .SH "SEE ALSO"
55
+ git\-lfs\-uninstall(1), git\-worktree(1)\.
56
+ .
57
+ .P
58
+ Part of the git\-lfs(1) suite\.
man/git-lfs-install.1.html ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-install(1) - Install Git LFS configuration.</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-install(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-install(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-install</code> - <span class="man-whatis">Install Git LFS configuration.</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs install</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">options</a></p>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+
80
+ <p>Perform the following actions to ensure that Git LFS is setup properly:</p>
81
+
82
+ <ul>
83
+ <li>Set up the clean and smudge filters under the name "lfs" in the global Git
84
+ config.</li>
85
+ <li>Install a pre-push hook to run <span class="man-ref">git-lfs-pre-push<span class="s">(1)</span></span> for the current repository,
86
+ if run from inside one. If "core.hooksPath" is configured in any Git
87
+ configuration (and supported, i.e., the installed Git version is at least
88
+ 2.9.0), then the pre-push hook will be installed to that directory instead.</li>
89
+ </ul>
90
+
91
+
92
+ <h2 id="OPTIONS">OPTIONS</h2>
93
+
94
+ <p>Without any options, <code>git lfs install</code> will only setup the "lfs" smudge and clean
95
+ filters if they are not already set.</p>
96
+
97
+ <dl>
98
+ <dt class="flush"><code>--force</code></dt><dd> Sets the "lfs" smudge and clean filters, overwriting existing values.</dd>
99
+ <dt class="flush"><code>--local</code></dt><dd> Sets the "lfs" smudge and clean filters in the local repository's git
100
+ config, instead of the global git config (~/.gitconfig).</dd>
101
+ <dt><code>--worktree</code></dt><dd> Sets the "lfs" smudge and clean filters in the current working tree's
102
+ git config, instead of the global git config (~/.gitconfig) or local
103
+ repository's git config ($GIT_DIR/config).
104
+ If multiple working trees are in use, the Git config extension
105
+ <code>worktreeConfig</code> must be enabled to use this option.
106
+ If only one working tree is in use, <code>--worktree</code> has the same effect
107
+ as <code>--local</code>.
108
+ This option is only available if the installed Git version is at least
109
+ 2.20.0 and therefore supports the "worktreeConfig" extension.</dd>
110
+ <dt><code>--manual</code></dt><dd> Print instructions for manually updating your hooks to include git-lfs
111
+ functionality. Use this option if <code>git lfs install</code> fails because of existing
112
+ hooks and you want to retain their functionality.</dd>
113
+ <dt><code>--system</code></dt><dd> Sets the "lfs" smudge and clean filters in the system git config, e.g. /etc/gitconfig
114
+ instead of the global git config (~/.gitconfig).</dd>
115
+ <dt><code>--skip-smudge</code></dt><dd> Skips automatic downloading of objects on clone or pull. This requires a
116
+ manual "git lfs pull" every time a new commit is checked out on your
117
+ repository.</dd>
118
+ <dt><code>--skip-repo</code></dt><dd> Skips setup of the local repo; use if you want to install the global lfs
119
+ filters but not make changes to the current repo.</dd>
120
+ </dl>
121
+
122
+
123
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
124
+
125
+ <p><span class="man-ref">git-lfs-uninstall<span class="s">(1)</span></span>, <span class="man-ref">git-worktree<span class="s">(1)</span></span>.</p>
126
+
127
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
128
+
129
+
130
+ <ol class='man-decor man-foot man foot'>
131
+ <li class='tl'></li>
132
+ <li class='tc'>October 2021</li>
133
+ <li class='tr'>git-lfs-install(1)</li>
134
+ </ol>
135
+
136
+ </div>
137
+ </body>
138
+ </html>
man/git-lfs-lock.1 ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-LOCK" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-lock\fR \- Set a file as "locked" on the Git LFS server
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs lock\fR \fIoptions\fR \fIpath\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Sets the given file path as "locked" against the Git LFS server, with the intention of blocking attempts by other users to update the given path\. Locking a file requires the file to exist in the working copy\.
14
+ .
15
+ .P
16
+ Once locked, LFS will verify that Git pushes do not modify files locked by other users\. See the description of the \fBlfs\.<url>\.locksverify\fR config key in git\-lfs\-config(5) for details\.
17
+ .
18
+ .SH "OPTIONS"
19
+ .
20
+ .TP
21
+ \fB\-r\fR \fIname\fR \fB\-\-remote=\fR\fIname\fR
22
+ Specify the Git LFS server to use\. Ignored if the \fBlfs\.url\fR config key is set\.
23
+ .
24
+ .TP
25
+ \fB\-\-json\fR
26
+ Writes lock info as JSON to STDOUT if the command exits successfully\. Intended for interoperation with external tools\. If the command returns with a non\-zero exit code, plain text messages will be sent to STDERR\.
27
+ .
28
+ .SH "SEE ALSO"
29
+ git\-lfs\-unlock(1), git\-lfs\-locks(1)\.
30
+ .
31
+ .P
32
+ Part of the git\-lfs(1) suite\.
man/git-lfs-lock.1.html ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-lock(1) - Set a file as &quot;locked&quot; on the Git LFS server</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-lock(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-lock(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-lock</code> - <span class="man-whatis">Set a file as "locked" on the Git LFS server</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs lock</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">options</a> <var>path</var></p>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+
80
+ <p>Sets the given file path as "locked" against the Git LFS server, with the
81
+ intention of blocking attempts by other users to update the given path. Locking
82
+ a file requires the file to exist in the working copy.</p>
83
+
84
+ <p>Once locked, LFS will verify that Git pushes do not modify files locked by
85
+ other users. See the description of the <code>lfs.&lt;url>.locksverify</code> config key in
86
+ <span class="man-ref">git-lfs-config<span class="s">(5)</span></span> for details.</p>
87
+
88
+ <h2 id="OPTIONS">OPTIONS</h2>
89
+
90
+ <dl>
91
+ <dt><code>-r</code> <var>name</var> <code>--remote=</code><var>name</var></dt><dd><p>Specify the Git LFS server to use. Ignored if the <code>lfs.url</code> config key is set.</p></dd>
92
+ <dt class="flush"><code>--json</code></dt><dd><p>Writes lock info as JSON to STDOUT if the command exits successfully. Intended
93
+ for interoperation with external tools. If the command returns with a non-zero
94
+ exit code, plain text messages will be sent to STDERR.</p></dd>
95
+ </dl>
96
+
97
+
98
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
99
+
100
+ <p><span class="man-ref">git-lfs-unlock<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-locks<span class="s">(1)</span></span>.</p>
101
+
102
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
103
+
104
+
105
+ <ol class='man-decor man-foot man foot'>
106
+ <li class='tl'></li>
107
+ <li class='tc'>October 2021</li>
108
+ <li class='tr'>git-lfs-lock(1)</li>
109
+ </ol>
110
+
111
+ </div>
112
+ </body>
113
+ </html>
man/git-lfs-locks.1 ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-LOCKS" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-locks\fR \- Lists currently locked files from the Git LFS server\.
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs locks\fR \fIoptions\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Lists current locks from the Git LFS server\.
14
+ .
15
+ .SH "OPTIONS"
16
+ .
17
+ .TP
18
+ \fB\-r\fR \fIname\fR \fB\-\-remote=\fR\fIname\fR
19
+ Specify the Git LFS server to use\. Ignored if the \fBlfs\.url\fR config key is set\.
20
+ .
21
+ .TP
22
+ \fB\-i <id>\fR \fB\-\-id=<id>\fR
23
+ Specifies a lock by its ID\. Returns a single result\.
24
+ .
25
+ .TP
26
+ \fB\-p <path>\fR \fB\-\-path=<path>\fR
27
+ Specifies a lock by its path\. Returns a single result\.
28
+ .
29
+ .TP
30
+ \fB\-\-local\fR
31
+ Lists only our own locks which are cached locally\. Skips a remote call\.
32
+ .
33
+ .TP
34
+ \fB\-\-cached\fR
35
+ Lists cached locks from the last remote call\. Contrary to \-\-local, this will include locks of other users as well\. This option is intended to display the last known locks in case you are offline\. There is no guarantee that locks on the server have not changed in the meanwhile\.
36
+ .
37
+ .TP
38
+ \fB\-\-verify\fR
39
+ Verifies the lock owner on the server and marks our own locks by \'O\'\. Own locks are actually held by us and corresponding files can be updated for the next push\. All other locks are held by someone else\. Contrary to \-\-local, this option will also detect locks which are held by us despite no local lock information being available (e\.g\. because the file had been locked from a different clone); it will also detect \'broken\' locks (e\.g\. if someone else has forcefully unlocked our files)\.
40
+ .
41
+ .TP
42
+ \fB\-l <num>\fR \fB\-\-limit=<num>\fR
43
+ Specifies number of results to return\.
44
+ .
45
+ .TP
46
+ \fB\-\-json\fR
47
+ Writes lock info as JSON to STDOUT if the command exits successfully\. Intended for interoperation with external tools\. If the command returns with a non\-zero exit code, plain text messages will be sent to STDERR\.
48
+ .
49
+ .SH "SEE ALSO"
50
+ git\-lfs\-lock(1), git\-lfs\-unlock(1)\.
51
+ .
52
+ .P
53
+ Part of the git\-lfs(1) suite\.
man/git-lfs-locks.1.html ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-locks(1) - Lists currently locked files from the Git LFS server.</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-locks(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-locks(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-locks</code> - <span class="man-whatis">Lists currently locked files from the Git LFS server.</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs locks</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">options</a></p>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+
80
+ <p>Lists current locks from the Git LFS server.</p>
81
+
82
+ <h2 id="OPTIONS">OPTIONS</h2>
83
+
84
+ <dl>
85
+ <dt><code>-r</code> <var>name</var> <code>--remote=</code><var>name</var></dt><dd><p>Specify the Git LFS server to use. Ignored if the <code>lfs.url</code> config key is set.</p></dd>
86
+ <dt><code>-i &lt;id></code> <code>--id=&lt;id></code></dt><dd><p>Specifies a lock by its ID. Returns a single result.</p></dd>
87
+ <dt><code>-p &lt;path></code> <code>--path=&lt;path></code></dt><dd><p>Specifies a lock by its path. Returns a single result.</p></dd>
88
+ <dt class="flush"><code>--local</code></dt><dd><p>Lists only our own locks which are cached locally. Skips a remote call.</p></dd>
89
+ <dt><code>--cached</code></dt><dd><p>Lists cached locks from the last remote call. Contrary to --local, this will
90
+ include locks of other users as well. This option is intended to display the
91
+ last known locks in case you are offline. There is no guarantee that locks
92
+ on the server have not changed in the meanwhile.</p></dd>
93
+ <dt><code>--verify</code></dt><dd><p>Verifies the lock owner on the server and marks our own locks by 'O'.
94
+ Own locks are actually held by us and corresponding files can be updated for
95
+ the next push. All other locks are held by someone else.
96
+ Contrary to --local, this option will also detect locks which are held by us
97
+ despite no local lock information being available (e.g. because the file had
98
+ been locked from a different clone);
99
+ it will also detect 'broken' locks (e.g. if someone else has forcefully
100
+ unlocked our files).</p></dd>
101
+ <dt><code>-l &lt;num></code> <code>--limit=&lt;num></code></dt><dd><p>Specifies number of results to return.</p></dd>
102
+ <dt class="flush"><code>--json</code></dt><dd><p>Writes lock info as JSON to STDOUT if the command exits successfully. Intended
103
+ for interoperation with external tools. If the command returns with a non-zero
104
+ exit code, plain text messages will be sent to STDERR.</p></dd>
105
+ </dl>
106
+
107
+
108
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
109
+
110
+ <p><span class="man-ref">git-lfs-lock<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-unlock<span class="s">(1)</span></span>.</p>
111
+
112
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
113
+
114
+
115
+ <ol class='man-decor man-foot man foot'>
116
+ <li class='tl'></li>
117
+ <li class='tc'>October 2021</li>
118
+ <li class='tr'>git-lfs-locks(1)</li>
119
+ </ol>
120
+
121
+ </div>
122
+ </body>
123
+ </html>
man/git-lfs-logs.1 ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-LOGS" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-logs\fR \- Show errors from the git\-lfs command
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs logs\fR
11
+ .
12
+ .br
13
+ \fBgit lfs logs\fR \fIfile\fR
14
+ .
15
+ .br
16
+ \fBgit lfs logs clear\fR
17
+ .
18
+ .br
19
+ \fBgit lfs logs boomtown\fR
20
+ .
21
+ .br
22
+ .
23
+ .SH "DESCRIPTION"
24
+ Display errors from the git\-lfs command\. Any time it crashes, the details are saved to "\.git/lfs/logs"\.
25
+ .
26
+ .SH "COMMANDS"
27
+ .
28
+ .TP
29
+ \fBclear\fR
30
+ Clears all of the existing logged errors\.
31
+ .
32
+ .TP
33
+ \fBboomtown\fR
34
+ Triggers a dummy exception\.
35
+ .
36
+ .SH "OPTIONS"
37
+ Without any options, \fBgit lfs logs\fR simply shows the list of error logs\.
38
+ .
39
+ .TP
40
+ \fIfile\fR
41
+ Shows the specified error log\. Use "last" to show the most recent error\.
42
+ .
43
+ .SH "SEE ALSO"
44
+ Part of the git\-lfs(1) suite\.
man/git-lfs-logs.1.html ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-logs(1) - Show errors from the git-lfs command</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#COMMANDS">COMMANDS</a>
60
+ <a href="#OPTIONS">OPTIONS</a>
61
+ <a href="#SEE-ALSO">SEE ALSO</a>
62
+ </div>
63
+
64
+ <ol class='man-decor man-head man head'>
65
+ <li class='tl'>git-lfs-logs(1)</li>
66
+ <li class='tc'></li>
67
+ <li class='tr'>git-lfs-logs(1)</li>
68
+ </ol>
69
+
70
+ <h2 id="NAME">NAME</h2>
71
+ <p class="man-name">
72
+ <code>git-lfs-logs</code> - <span class="man-whatis">Show errors from the git-lfs command</span>
73
+ </p>
74
+
75
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
76
+
77
+ <p><code>git lfs logs</code><br />
78
+ <code>git lfs logs</code> <var>file</var><br />
79
+ <code>git lfs logs clear</code><br />
80
+ <code>git lfs logs boomtown</code><br /></p>
81
+
82
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
83
+
84
+ <p>Display errors from the git-lfs command. Any time it crashes, the details are
85
+ saved to ".git/lfs/logs".</p>
86
+
87
+ <h2 id="COMMANDS">COMMANDS</h2>
88
+
89
+ <dl>
90
+ <dt class="flush"><code>clear</code></dt><dd><p> Clears all of the existing logged errors.</p></dd>
91
+ <dt><code>boomtown</code></dt><dd><p> Triggers a dummy exception.</p></dd>
92
+ </dl>
93
+
94
+
95
+ <h2 id="OPTIONS">OPTIONS</h2>
96
+
97
+ <p>Without any options, <code>git lfs logs</code> simply shows the list of error logs.</p>
98
+
99
+ <dl>
100
+ <dt class="flush"><var>file</var></dt><dd> Shows the specified error log. Use "last" to show the most recent error.</dd>
101
+ </dl>
102
+
103
+
104
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
105
+
106
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
107
+
108
+
109
+ <ol class='man-decor man-foot man foot'>
110
+ <li class='tl'></li>
111
+ <li class='tc'>October 2021</li>
112
+ <li class='tr'>git-lfs-logs(1)</li>
113
+ </ol>
114
+
115
+ </div>
116
+ </body>
117
+ </html>
man/git-lfs-ls-files.1 ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-LS\-FILES" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-ls\-files\fR \- Show information about Git LFS files in the index and working tree
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs ls\-files\fR [\fIref\fR]
11
+ .
12
+ .br
13
+ \fBgit lfs ls\-files\fR \fIref\fR \fIref\fR
14
+ .
15
+ .SH "DESCRIPTION"
16
+ Display paths of Git LFS files that are found in the tree at the given reference\. If no reference is given, scan the currently checked\-out branch\. If two references are given, the LFS files that are modified between the two references are shown; deletions are not listed\.
17
+ .
18
+ .P
19
+ An asterisk (*) after the OID indicates a full object, a minus (\-) indicates an LFS pointer\.
20
+ .
21
+ .SH "OPTIONS"
22
+ .
23
+ .TP
24
+ \fB\-l\fR \fB\-\-long\fR
25
+ Show the entire 64 character OID, instead of just first 10\.
26
+ .
27
+ .TP
28
+ \fB\-s\fR \fB\-\-size\fR
29
+ Show the size of the LFS object between parenthesis at the end of a line\.
30
+ .
31
+ .TP
32
+ \fB\-d\fR \fB\-\-debug\fR
33
+ Show as much information as possible about a LFS file\. This is intended for manual inspection; the exact format may change at any time\.
34
+ .
35
+ .TP
36
+ \fB\-a\fR \fB\-\-all\fR
37
+ Inspects the full history of the repository, not the current HEAD (or other provided reference)\. This will include previous versions of LFS objects that are no longer found in the current tree\.
38
+ .
39
+ .TP
40
+ \fB\-\-deleted\fR
41
+ Shows the full history of the given reference, including objects that have been deleted\.
42
+ .
43
+ .TP
44
+ \fB\-I\fR \fIpaths\fR \fB\-\-include=\fR\fIpaths\fR
45
+ Include paths matching only these patterns; see [FETCH SETTINGS]\.
46
+ .
47
+ .TP
48
+ \fB\-X\fR \fIpaths\fR \fB\-\-exclude=\fR\fIpaths\fR
49
+ Exclude paths matching any of these patterns; see [FETCH SETTINGS]\.
50
+ .
51
+ .TP
52
+ \fB\-n\fR \fB\-\-name\-only\fR
53
+ Show only the lfs tracked file names\.
54
+ .
55
+ .SH "SEE ALSO"
56
+
57
+ .
58
+ .P
59
+ git\-lfs\-status(1), git\-lfs\-config(5)\.
60
+ .
61
+ .P
62
+ Part of the git\-lfs(1) suite\.
man/git-lfs-ls-files.1.html ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-ls-files(1) - Show information about Git LFS files in the index and working tree</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-ls-files(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-ls-files(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-ls-files</code> - <span class="man-whatis">Show information about Git LFS files in the index and working tree</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs ls-files</code> [<var>ref</var>]<br />
77
+ <code>git lfs ls-files</code> <var>ref</var> <var>ref</var></p>
78
+
79
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
80
+
81
+ <p>Display paths of Git LFS files that are found in the tree at the given
82
+ reference. If no reference is given, scan the currently checked-out branch.
83
+ If two references are given, the LFS files that are modified between the two
84
+ references are shown; deletions are not listed.</p>
85
+
86
+ <p>An asterisk (*) after the OID indicates a full object, a minus (-) indicates an
87
+ LFS pointer.</p>
88
+
89
+ <h2 id="OPTIONS">OPTIONS</h2>
90
+
91
+ <dl>
92
+ <dt><code>-l</code> <code>--long</code></dt><dd><p>Show the entire 64 character OID, instead of just first 10.</p></dd>
93
+ <dt><code>-s</code> <code>--size</code></dt><dd><p>Show the size of the LFS object between parenthesis at the end of a line.</p></dd>
94
+ <dt><code>-d</code> <code>--debug</code></dt><dd><p>Show as much information as possible about a LFS file. This is intended
95
+ for manual inspection; the exact format may change at any time.</p></dd>
96
+ <dt><code>-a</code> <code>--all</code></dt><dd><p>Inspects the full history of the repository, not the current HEAD (or other
97
+ provided reference). This will include previous versions of LFS objects that
98
+ are no longer found in the current tree.</p></dd>
99
+ <dt><code>--deleted</code></dt><dd><p>Shows the full history of the given reference, including objects that have
100
+ been deleted.</p></dd>
101
+ <dt><code>-I</code> <var>paths</var> <code>--include=</code><var>paths</var></dt><dd><p>Include paths matching only these patterns; see [FETCH SETTINGS].</p></dd>
102
+ <dt><code>-X</code> <var>paths</var> <code>--exclude=</code><var>paths</var></dt><dd><p>Exclude paths matching any of these patterns; see [FETCH SETTINGS].</p></dd>
103
+ <dt><code>-n</code> <code>--name-only</code></dt><dd><p>Show only the lfs tracked file names.</p>
104
+
105
+ <h2 id="SEE-ALSO">SEE ALSO</h2></dd>
106
+ </dl>
107
+
108
+
109
+ <p><span class="man-ref">git-lfs-status<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-config<span class="s">(5)</span></span>.</p>
110
+
111
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
112
+
113
+
114
+ <ol class='man-decor man-foot man foot'>
115
+ <li class='tl'></li>
116
+ <li class='tc'>October 2021</li>
117
+ <li class='tr'>git-lfs-ls-files(1)</li>
118
+ </ol>
119
+
120
+ </div>
121
+ </body>
122
+ </html>
man/git-lfs-migrate.1 ADDED
@@ -0,0 +1,405 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-MIGRATE" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-migrate\fR \- Migrate history to or from Git LFS
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs migrate\fR \fImode\fR [options] [\-\-] [branch \.\.\.]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Convert files in a Git repository to or from Git LFS pointers, or summarize Git file sizes by file type\. The \fBimport\fR mode converts Git files (i\.e\., blobs) to Git LFS, while the \fBexport\fR mode does the reverse, and the \fBinfo\fR mode provides an informational summary which may be useful in deciding which files to import or export\.
14
+ .
15
+ .P
16
+ In all modes, by default \fBgit lfs migrate\fR operates only on the currently checked\-out branch, and only on files (of any size and type) added in commits which do not exist on any remote\. Multiple options are available to override these defaults\.
17
+ .
18
+ .P
19
+ When converting files to or from Git LFS, the \fBgit lfs migrate\fR command will only make changes to your local repository and working copy, never any remotes\. This is intentional as the \fBimport\fR and \fBexport\fR modes are generally "destructive" in the sense that they rewrite your Git history, changing commits and generating new commit SHAs\. (The exception is the "no\-rewrite" \fBimport\fR sub\-mode; see [IMPORT (NO REWRITE)] for details\.)
20
+ .
21
+ .P
22
+ You should therefore always first commit or stash any uncommitted work before using the \fBimport\fR or \fBexport\fR modes, and then validate the result of the migration before pushing the changes to your remotes, for instance by running the \fBinfo\fR mode and by examining your rewritten commit history\.
23
+ .
24
+ .P
25
+ Once you are satisfied with the changes, you will need to force\-push the new Git history of any rewritten branches to all your remotes\. This is a step which should be taken with care, since you will be altering the Git history on your remotes\.
26
+ .
27
+ .P
28
+ To examine or modify files in branches other than the currently checked\-out one, branch refs may be specified directly, or provided in one or more \fB\-\-include\-ref\fR options\. They may also be excluded by prefixing them with \fB^\fR or providing them in \fB\-\-exclude\-ref\fR options\. Use the \fB\-\-everything\fR option to specify that all refs should be examined, including all remote refs\. See [INCLUDE AND EXCLUDE (REFS)] for details\.
29
+ .
30
+ .P
31
+ For the \fBinfo\fR and \fBimport\fR modes, all file types are considered by default; while useful in the \fBinfo\fR mode, this is often not desirable when importing, so either filename patterns (pathspecs) or the \fB\-\-fixup\fR option should normally be specified in that case\. (At least one include pathspec is required for the \fBexport\fR mode\.) Pathspecs may be defined using the \fB\-\-include\fR and \fB\-\-exclude\fR options (\fB\-I\fR and \fB\-X\fR for short), as described in \fIINCLUDE AND EXCLUDE\fR\.
32
+ .
33
+ .P
34
+ As typical Git LFS usage depends on tracking specific file types using filename patterns defined in \fB\.gitattributes\fR files, the \fBgit lfs migrate\fR command will examine, create, and modify \fB\.gitattributes\fR files as necessary\.
35
+ .
36
+ .P
37
+ The \fBimport\fR mode (see \fIIMPORT\fR) will convert Git objects of the file types specified (e\.g\., with \fB\-\-include\fR) to Git LFS pointers, and will add entries for those file types to \fB\.gitattributes\fR files, creating those files if they do not exist\. The result should be as if \fBgit lfs track\fR commands had been run at the points in your Git history corresponding to where each type of converted file first appears\. The exception is if the \fB\-\-fixup\fR option is given, in which case the \fBimport\fR mode will only examine any existing \fB\.gitattributes\fR files and then convert Git objects which should be tracked by Git LFS but are not yet\.
38
+ .
39
+ .P
40
+ The \fBexport\fR mode (see \fIEXPORT\fR) works as the reverse operation to the \fBimport\fR mode, converting any Git LFS pointers that match the file types specified with \fB\-\-include\fR, which must be given at least once\. Note that \fB\.gitattributes\fR entries will not be removed, nor will the files; instead, the \fBexport\fR mode inserts "do not track" entries similar to those created by the \fBgit lfs untrack\fR command\. The \fB\-\-remote\fR option is available in the \fBexport\fR mode to specify the remote from which Git LFS objects should be fetched if they do not exist in the local Git LFS object cache; if not provided, \fBorigin\fR is used by default\.
41
+ .
42
+ .P
43
+ The \fBinfo\fR mode (see \fIINFO\fR) summarizes by file type (i\.e\., by filename extension) the total number and size of files in a repository\. Note that like the other two modes, by default the \fBinfo\fR mode operates only on the currently checked\-out branch and only on commits which do not exist on any remote, so to get a summary of the entire repository across all branches, use the \fB\-\-everything\fR option\. If objects have already been converted to Git LFS pointers, then by default the size of the referenced objects is totaled and reported separately\. You may also choose to ignore them by using \fB\-\-pointers=ignore\fR or to treat the pointers as files by using \fB\-\-pointers=no\-follow\fR\. (The latter option is akin to how existing Git LFS pointers were handled by the \fBinfo\fR mode in prior versions of Git LFS)\.
44
+ .
45
+ .P
46
+ When using the \fB\-\-everything\fR option, take note that it means all refs (local and remote) will be considered, but not necessarily all file types\. The \fBimport\fR and \fBinfo\fR modes consider all file types by default, although the \fB\-\-include\fR and \fB\-\-exclude\fR options constrain this behavior\. Also note that after importing across all branches with the \fB\-\-everything\fR option (and then checking to ensure the results are satisfactory!) it may be convenient to update multiple branches on your remotes by using the \fB\-\-all\fR option to \fBgit push\fR\.
47
+ .
48
+ .P
49
+ Unless the \fB\-\-skip\-fetch\fR option is given, \fBgit lfs migrate\fR always begins by fetching updated lists of refs from all the remotes returned by \fBgit remote\fR, but as noted above, after making changes to your local Git history while converting objects, it will never automatically push those changes to your remotes\.
50
+ .
51
+ .SH "MODES"
52
+ .
53
+ .IP "\(bu" 4
54
+ \fBinfo\fR Show information about repository size\. See \fIINFO\fR\.
55
+ .
56
+ .IP "\(bu" 4
57
+ \fBimport\fR Convert Git objects to Git LFS pointers\. See \fIIMPORT\fR and [IMPORT (NO REWRITE)]\.
58
+ .
59
+ .IP "\(bu" 4
60
+ \fBexport\fR Convert Git LFS pointers to Git objects\. See \fIEXPORT\fR\.
61
+ .
62
+ .IP "" 0
63
+ .
64
+ .SH "OPTIONS"
65
+ .
66
+ .TP
67
+ \fB\-I\fR \fIpaths\fR \fB\-\-include=\fR\fIpaths\fR
68
+ See \fIINCLUDE AND EXCLUDE\fR\.
69
+ .
70
+ .TP
71
+ \fB\-X\fR \fIpaths\fR \fB\-\-exclude=\fR\fIpaths\fR
72
+ See \fIINCLUDE AND EXCLUDE\fR\.
73
+ .
74
+ .TP
75
+ \fB\-\-include\-ref\fR=\fIrefname\fR
76
+ See [INCLUDE AND EXCLUDE (REFS)]\.
77
+ .
78
+ .TP
79
+ \fB\-\-exclude\-ref\fR=\fIrefname\fR
80
+ See [INCLUDE AND EXCLUDE (REFS)]\.
81
+ .
82
+ .TP
83
+ \fB\-\-skip\-fetch\fR
84
+ Assumes that the known set of remote references is complete, and should not be refreshed when determining the set of "un\-pushed" commits to migrate\. Has no effect when combined with \fB\-\-include\-ref\fR or \fB\-\-exclude\-ref\fR\.
85
+ .
86
+ .TP
87
+ \fB\-\-everything\fR
88
+ See [INCLUDE AND EXCLUDE (REFS)]\.
89
+ .
90
+ .IP
91
+ Note: Git refs are "case\-sensitive" on all platforms in "packed from" (see \fBgit\-pack\-refs(1)\fR)\. On "case\-insensitive" file systems, e\.g\. NTFS on Windows or default APFS on macOS, \fBgit\-lfs\-migrate(1)\fR would only migrate the first ref if two or more refs are equal except for upper/lower case letters\.
92
+ .
93
+ .TP
94
+ \fB\-\-yes\fR
95
+ Assume a yes answer to any prompts, permitting noninteractive use\. Currently, the only such prompt is the one asking whether to overwrite (destroy) any working copy changes\. Thus, specifying this option may cause data loss if you are not careful\.
96
+ .
97
+ .TP
98
+ [branch \.\.\.]
99
+ Migrate only the set of branches listed\. If not given, \fBgit\-lfs\-migrate(1)\fR will migrate the currently checked out branch\.
100
+ .
101
+ .IP
102
+ References beginning with \fB^\fR will be excluded, whereas branches that do not begin with \fB^\fR will be included\.
103
+ .
104
+ .IP
105
+ If any of \fB\-\-include\-ref\fR or \fB\-\-exclude\-ref\fR are given, the checked out branch will not be appended, but branches given explicitly will be appended\.
106
+ .
107
+ .SS "INFO"
108
+ The \fBinfo\fR mode summarizes the sizes of file objects present in the Git history\. It supports all the core \fBmigrate\fR options and these additional ones:
109
+ .
110
+ .IP "\(bu" 4
111
+ \fB\-\-above=<size>\fR Only count files whose individual filesize is above the given size\. \fBsize\fR may be specified as a number of bytes, or a number followed by a storage unit, e\.g\., "1b", "20 MB", "3 TiB", etc\.
112
+ .
113
+ .IP
114
+ If a set of files sharing a common extension has no files in that set whose individual size is above the given \fB\-\-above\fR no files no entry for that set will be shown\.
115
+ .
116
+ .IP "\(bu" 4
117
+ \fB\-\-top=<n>\fR Only display the top \fBn\fR entries, ordered by how many total files match the given pathspec\. The default is to show only the top 5 entries\. When existing Git LFS objects are found, an extra, separate "LFS Objects" line is output in addition to the top \fBn\fR entries, unless the \fB\-\-pointers\fR option is used to change this behavior\.
118
+ .
119
+ .IP "\(bu" 4
120
+ \fB\-\-unit=<unit>\fR Format the number of bytes in each entry as a quantity of the storage unit provided\. Valid units include:
121
+ .
122
+ .IP "" 4
123
+ .
124
+ .nf
125
+
126
+ * b, kib, mib, gib, tib, pib \- for IEC storage units
127
+ * b, kb, mb, gb, tb, pb \- for SI storage units
128
+ .
129
+ .fi
130
+ .
131
+ .IP "" 0
132
+ .
133
+ .IP
134
+ If a \fB\-\-unit\fR is not specified, the largest unit that can fit the number of counted bytes as a whole number quantity is chosen\.
135
+ .
136
+ .IP "\(bu" 4
137
+ \fB\-\-pointers=[follow|no\-follow|ignore]\fR Treat existing Git LFS pointers in the history according to one of three alternatives\. In the default \fBfollow\fR case, if any pointers are found, an additional separate "LFS Objects" line item is output which summarizes the total number and size of the Git LFS objects referenced by pointers\. In the \fBignore\fR case, any pointers are simply ignored, while the \fBno\-follow\fR case replicates the behavior of the \fBinfo\fR mode in older Git LFS versions and treats any pointers it finds as if they were regular files, so the output totals only include the contents of the pointers, not the contents of the objects to which they refer\.
138
+ .
139
+ .IP "\(bu" 4
140
+ \fB\-\-fixup\fR Infer \fB\-\-include\fR and \fB\-\-exclude\fR filters on a per\-commit basis based on the \.gitattributes files in a repository\. In practice, this option counts any filepaths which should be tracked by Git LFS according to the repository\'s \.gitattributes file(s), but aren\'t already pointers\. The \.gitattributes files are not reported, in contrast to the normal output of the \fBinfo\fR mode\. This option is incompatible with explicitly given \fB\-\-include\fR, \fB\-\-exclude\fR filters and with any \fB\-\-pointers\fR setting other than \fBignore\fR, hence \fB\-\-fixup\fR implies \fB\-\-pointers=ignore\fR if it is not explicitly set\.
141
+ .
142
+ .IP "" 0
143
+ .
144
+ .P
145
+ The format of the output shows the filename pattern, the total size of the file objects (excluding those below the \fB\-\-above\fR threshold, if one was defined), and the ratio of the number of files above the threshold to the total number of files; this ratio is also shown as a percentage\. For example:
146
+ .
147
+ .IP "" 4
148
+ .
149
+ .nf
150
+
151
+ *\.gif 93 MB 9480/10504 files(s) 90%
152
+ *\.png 14 MB 1732/1877 files(s) 92%
153
+ .
154
+ .fi
155
+ .
156
+ .IP "" 0
157
+ .
158
+ .P
159
+ By default only the top five entries are shown, but \fB\-\-top\fR allows for more or fewer to be output as desired\.
160
+ .
161
+ .SS "IMPORT"
162
+ The \fBimport\fR mode migrates objects present in the Git history to pointer files tracked and stored with Git LFS\. It supports all the core \fBmigrate\fR options and these additional ones:
163
+ .
164
+ .IP "\(bu" 4
165
+ \fB\-\-verbose\fR Print the commit oid and filename of migrated files to STDOUT\.
166
+ .
167
+ .IP "\(bu" 4
168
+ \fB\-\-above=<size>\fR Only migrate files whose individual filesize is above the given size\. \fBsize\fR may be specified as a number of bytes, or a number followed by a storage unit, e\.g\., "1b", "20 MB", "3 TiB", etc\.
169
+ .
170
+ .IP "\(bu" 4
171
+ \fB\-\-object\-map=<path>\fR Write to \fBpath\fR a file with the mapping of each rewritten commits\. The file format is CSV with this pattern: \fBOLD\-SHA\fR,\fBNEW\-SHA\fR
172
+ .
173
+ .IP "\(bu" 4
174
+ \fB\-\-no\-rewrite\fR Migrate objects to Git LFS in a new commit without rewriting Git history\. Please note that when this option is used, the \fBmigrate import\fR command will expect a different argument list, specialized options will become available, and the core \fBmigrate\fR options will be ignored\. See [IMPORT (NO REWRITE)]\.
175
+ .
176
+ .IP "\(bu" 4
177
+ \fB\-\-fixup\fR Infer \fB\-\-include\fR and \fB\-\-exclude\fR filters on a per\-commit basis based on the \fB\.gitattributes\fR files in a repository\. In practice, this option imports any filepaths which should be tracked by Git LFS according to the repository\'s \fB\.gitattributes\fR file(s), but aren\'t already pointers\. This option is incompatible with explicitly given \fB\-\-include\fR, \fB\-\-exclude\fR filters\.
178
+ .
179
+ .IP "" 0
180
+ .
181
+ .P
182
+ If \fB\-\-no\-rewrite\fR is not provided and \fB\-\-include\fR or \fB\-\-exclude\fR (\fB\-I\fR, \fB\-X\fR, respectively) are given, the \fB\.gitattributes\fR will be modified to include any new filepath patterns as given by those flags\.
183
+ .
184
+ .P
185
+ If \fB\-\-no\-rewrite\fR is not provided and neither of those flags are given, the gitattributes will be incrementally modified to include new filepath extensions as they are rewritten in history\.
186
+ .
187
+ .SS "IMPORT (NO REWRITE)"
188
+ The \fBimport\fR mode has a special sub\-mode enabled by the \fB\-\-no\-rewrite\fR flag\. This sub\-mode will migrate objects to pointers as in the base \fBimport\fR mode, but will do so in a new commit without rewriting Git history\. When using this sub\-mode, the base \fBmigrate\fR options, such as \fB\-\-include\-ref\fR, will be ignored, as will those for the base \fBimport\fR mode\. The \fBmigrate\fR command will also take a different argument list\. As a result of these changes, \fB\-\-no\-rewrite\fR will only operate on the current branch \- any other interested branches must have the generated commit merged in\.
189
+ .
190
+ .P
191
+ The \fB\-\-no\-rewrite\fR sub\-mode supports the following options and arguments:
192
+ .
193
+ .IP "\(bu" 4
194
+ \fB\-m <message> \-\-message=<message>\fR Specifies a commit message for the newly created commit\.
195
+ .
196
+ .IP "\(bu" 4
197
+ [file \.\.\.] The list of files to import\. These files must be tracked by patterns specified in the gitattributes\.
198
+ .
199
+ .IP "" 0
200
+ .
201
+ .P
202
+ If \fB\-\-message\fR is given, the new commit will be created with the provided message\. If no message is given, a commit message will be generated based on the file arguments\.
203
+ .
204
+ .SS "EXPORT"
205
+ The \fBexport\fR mode migrates Git LFS pointer files present in the Git history out of Git LFS, converting them into their corresponding object files\. It supports all the core \fBmigrate\fR options and these additional ones:
206
+ .
207
+ .IP "\(bu" 4
208
+ \fB\-\-verbose\fR Print the commit oid and filename of migrated files to STDOUT\.
209
+ .
210
+ .IP "\(bu" 4
211
+ \fB\-\-object\-map=<path>\fR Write to \fBpath\fR a file with the mapping of each rewritten commit\. The file format is CSV with this pattern: \fBOLD\-SHA\fR,\fBNEW\-SHA\fR
212
+ .
213
+ .IP "\(bu" 4
214
+ \fB\-\-remote=<git\-remote>\fR Download LFS objects from the provided \fBgit\-remote\fR during the export\. If not provided, defaults to \fBorigin\fR\.
215
+ .
216
+ .IP "" 0
217
+ .
218
+ .P
219
+ The \fBexport\fR mode requires at minimum a pattern provided with the \fB\-\-include\fR argument to specify which files to export\. Files matching the \fB\-\-include\fR patterns will be removed from Git LFS, while files matching the \fB\-\-exclude\fR patterns will retain their Git LFS status\. The export command will modify the \fB\.gitattributes\fR to set/unset any filepath patterns as given by those flags\.
220
+ .
221
+ .SH "INCLUDE AND EXCLUDE"
222
+ You can specify that \fBgit lfs migrate\fR should only convert files whose pathspec matches the \fB\-\-include\fR glob patterns and does not match the \fB\-\-exclude\fR glob patterns, either to reduce total migration time or to only migrate part of your repo\. Multiple patterns may be given using commas as delimiters\.
223
+ .
224
+ .P
225
+ Pattern matching is done so as to be functionally equivalent to the pattern matching format of \fB\.gitattributes\fR\. In addition to simple file extension matches (e\.g\., \fB*\.gif\fR) patterns may also specify directory paths, in which case the \fBpath/**\fR format may be used to match recursively\.
226
+ .
227
+ .SH "INCLUDE AND EXCLUDE (REFS)"
228
+ You can specify that \fBgit lfs migrate\fR should only convert files added in commits reachable from certain references, namely those defined using one or more \fB\-\-include\-ref\fR options, and should ignore files in commits reachable from references defined in \fB\-\-exclude\-ref\fR options\.
229
+ .
230
+ .IP "" 4
231
+ .
232
+ .nf
233
+
234
+ D\-\-\-E\-\-\-F
235
+ / \e
236
+ A\-\-\-B\-\-\-\-\-\-C refs/heads/my\-feature
237
+ \e \e
238
+ \e refs/heads/main
239
+ \e
240
+ refs/remotes/origin/main
241
+ .
242
+ .fi
243
+ .
244
+ .IP "" 0
245
+ .
246
+ .P
247
+ In the above configuration, the following commits are reachable by each ref:
248
+ .
249
+ .IP "" 4
250
+ .
251
+ .nf
252
+
253
+ refs/heads/main: C, B, A
254
+ refs/heads/my\-feature: F, E, D, B, A
255
+ refs/remote/origin/main: A
256
+ .
257
+ .fi
258
+ .
259
+ .IP "" 0
260
+ .
261
+ .P
262
+ The following \fBgit lfs migrate\fR options would, therefore, include commits F, E, D, C, and B, but exclude commit A:
263
+ .
264
+ .IP "" 4
265
+ .
266
+ .nf
267
+
268
+ \-\-include\-ref=refs/heads/my\-feature
269
+ \-\-include\-ref=refs/heads/main
270
+ \-\-exclude\-ref=refs/remotes/origin/main
271
+ .
272
+ .fi
273
+ .
274
+ .IP "" 0
275
+ .
276
+ .P
277
+ The presence of flag \fB\-\-everything\fR indicates that all local and remote references should be migrated\.
278
+ .
279
+ .SH "EXAMPLES"
280
+ .
281
+ .SS "Migrate unpushed commits"
282
+ A common use case for the migrate command is to convert large Git objects to LFS before pushing your commits\. By default, it only scans commits that don\'t exist on any remote, so long as the repository is non\-bare\.
283
+ .
284
+ .P
285
+ First, run \fBgit lfs migrate info\fR to list the file types taking up the most space in your repository:
286
+ .
287
+ .IP "" 4
288
+ .
289
+ .nf
290
+
291
+ $ git lfs migrate info
292
+ migrate: Fetching remote refs: \.\.\., done
293
+ migrate: Sorting commits: \.\.\., done
294
+ migrate: Examining commits: 100% (1/1), done
295
+ *\.mp3 284 MB 1/1 files(s) 100%
296
+ *\.pdf 42 MB 8/8 files(s) 100%
297
+ *\.psd 9\.8 MB 15/15 files(s) 100%
298
+ *\.ipynb 6\.9 MB 6/6 files(s) 100%
299
+ *\.csv 5\.8 MB 2/2 files(s) 100%
300
+ .
301
+ .fi
302
+ .
303
+ .IP "" 0
304
+ .
305
+ .P
306
+ Now, you can run \fBgit lfs migrate import\fR to convert some file types to LFS:
307
+ .
308
+ .IP "" 4
309
+ .
310
+ .nf
311
+
312
+ $ git lfs migrate import \-\-include="*\.mp3,*\.psd"
313
+ migrate: Fetching remote refs: \.\.\., done
314
+ migrate: Sorting commits: \.\.\., done
315
+ migrate: Rewriting commits: 100% (1/1), done
316
+ main d2b959babd099fe70da1c1512e2475e8a24de163 \-> 136e706bf1ae79643915c134e17a6c933fd53c61
317
+ migrate: Updating refs: \.\.\., done
318
+ .
319
+ .fi
320
+ .
321
+ .IP "" 0
322
+ .
323
+ .P
324
+ If after conversion you find that some files in your working directory have been replaced with Git LFS pointers, this is normal, and the working copies of these files can be repopulated with their full expected contents by using \fBgit lfs checkout\fR\.
325
+ .
326
+ .SS "Migrate local history"
327
+ You can also migrate the entire history of your repository:
328
+ .
329
+ .IP "" 4
330
+ .
331
+ .nf
332
+
333
+ # Check for large files and existing Git LFS objects in your local main branch
334
+ $ git lfs migrate info \-\-include\-ref=main
335
+
336
+ # Check for large files and existing Git LFS objects in every branch
337
+ $ git lfs migrate info \-\-everything
338
+
339
+ # Check for large files in every branch, ignoring any existing Git LFS objects,
340
+ # and listing the top 100 or fewer results
341
+ $ git lfs migrate info \-\-everything \-\-pointers=ignore \-\-top=100
342
+ .
343
+ .fi
344
+ .
345
+ .IP "" 0
346
+ .
347
+ .P
348
+ The same flags will work in \fBimport\fR mode:
349
+ .
350
+ .IP "" 4
351
+ .
352
+ .nf
353
+
354
+ # Convert all zip files in your main branch
355
+ $ git lfs migrate import \-\-include\-ref=main \-\-include="*\.zip"
356
+
357
+ # Convert all zip files in every local branch
358
+ $ git lfs migrate import \-\-everything \-\-include="*\.zip"
359
+
360
+ # Convert all files over 100K in every local branch
361
+ $ git lfs migrate import \-\-everything \-\-above=100Kb
362
+ .
363
+ .fi
364
+ .
365
+ .IP "" 0
366
+ .
367
+ .P
368
+ Note: This will require a force\-push to any existing Git remotes\. Using the \fB\-\-all\fR option when force\-pushing may be convenient if many refs were updated, e\.g\., after importing to Git LFS with the \fB\-\-everything\fR option\.
369
+ .
370
+ .SS "Migrate without rewriting local history"
371
+ You can also migrate files without modifying the existing history of your repository\. Note that in the examples below, files in subdirectories are not included because they are not explicitly specified\.
372
+ .
373
+ .P
374
+ Without a specified commit message:
375
+ .
376
+ .IP "" 4
377
+ .
378
+ .nf
379
+
380
+ $ git lfs migrate import \-\-no\-rewrite test\.zip *\.mp3 *\.psd
381
+ .
382
+ .fi
383
+ .
384
+ .IP "" 0
385
+ .
386
+ .P
387
+ With a specified commit message:
388
+ .
389
+ .IP "" 4
390
+ .
391
+ .nf
392
+
393
+ $ git lfs migrate import \-\-no\-rewrite \e
394
+ \-m "Import test\.zip, \.mp3, \.psd files in root of repo" \e
395
+ test\.zip *\.mp3 *\.psd
396
+ .
397
+ .fi
398
+ .
399
+ .IP "" 0
400
+ .
401
+ .SH "SEE ALSO"
402
+ git\-lfs\-checkout(1), git\-lfs\-track(1), git\-lfs\-untrack(1), gitattributes(5)\.
403
+ .
404
+ .P
405
+ Part of the git\-lfs(1) suite\.
man/git-lfs-migrate.1.html ADDED
@@ -0,0 +1,523 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-migrate(1) - Migrate history to or from Git LFS</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#MODES">MODES</a>
60
+ <a href="#OPTIONS">OPTIONS</a>
61
+ <a href="#INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</a>
62
+ <a href="#INCLUDE-AND-EXCLUDE-REFS-">INCLUDE AND EXCLUDE (REFS)</a>
63
+ <a href="#EXAMPLES">EXAMPLES</a>
64
+ <a href="#SEE-ALSO">SEE ALSO</a>
65
+ </div>
66
+
67
+ <ol class='man-decor man-head man head'>
68
+ <li class='tl'>git-lfs-migrate(1)</li>
69
+ <li class='tc'></li>
70
+ <li class='tr'>git-lfs-migrate(1)</li>
71
+ </ol>
72
+
73
+ <h2 id="NAME">NAME</h2>
74
+ <p class="man-name">
75
+ <code>git-lfs-migrate</code> - <span class="man-whatis">Migrate history to or from Git LFS</span>
76
+ </p>
77
+
78
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
79
+
80
+ <p><code>git lfs migrate</code> <var>mode</var> [options] [--] [branch ...]</p>
81
+
82
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
83
+
84
+ <p>Convert files in a Git repository to or from Git LFS pointers, or
85
+ summarize Git file sizes by file type. The <code>import</code> mode converts Git
86
+ files (i.e., blobs) to Git LFS, while the <code>export</code> mode does the reverse,
87
+ and the <code>info</code> mode provides an informational summary which may be useful
88
+ in deciding which files to import or export.</p>
89
+
90
+ <p>In all modes, by default <code>git lfs migrate</code> operates only on the currently
91
+ checked-out branch, and only on files (of any size and type) added in
92
+ commits which do not exist on any remote. Multiple options are available
93
+ to override these defaults.</p>
94
+
95
+ <p>When converting files to or from Git LFS, the <code>git lfs migrate</code> command will
96
+ only make changes to your local repository and working copy, never any
97
+ remotes. This is intentional as the <code>import</code> and <code>export</code> modes are
98
+ generally "destructive" in the sense that they rewrite your Git history,
99
+ changing commits and generating new commit SHAs. (The exception is the
100
+ "no-rewrite" <code>import</code> sub-mode; see [IMPORT (NO REWRITE)] for details.)</p>
101
+
102
+ <p>You should therefore always first commit or stash any uncommitted work
103
+ before using the <code>import</code> or <code>export</code> modes, and then validate the result of
104
+ the migration before pushing the changes to your remotes, for instance by
105
+ running the <code>info</code> mode and by examining your rewritten commit history.</p>
106
+
107
+ <p>Once you are satisfied with the changes, you will need to force-push the
108
+ new Git history of any rewritten branches to all your remotes. This is
109
+ a step which should be taken with care, since you will be altering the
110
+ Git history on your remotes.</p>
111
+
112
+ <p>To examine or modify files in branches other than the currently checked-out
113
+ one, branch refs may be specified directly, or provided in one or more
114
+ <code>--include-ref</code> options. They may also be excluded by prefixing them
115
+ with <code>^</code> or providing them in <code>--exclude-ref</code> options. Use the <code>--everything</code>
116
+ option to specify that all refs should be examined, including all remote refs.
117
+ See [INCLUDE AND EXCLUDE (REFS)] for details.</p>
118
+
119
+ <p>For the <code>info</code> and <code>import</code> modes, all file types are considered by default;
120
+ while useful in the <code>info</code> mode, this is often not desirable when importing,
121
+ so either filename patterns (pathspecs) or the <code>--fixup</code> option should
122
+ normally be specified in that case. (At least one include pathspec is
123
+ required for the <code>export</code> mode.) Pathspecs may be defined using the
124
+ <code>--include</code> and <code>--exclude</code> options (<code>-I</code> and <code>-X</code> for short), as described
125
+ in <a href="#INCLUDE-AND-EXCLUDE" title="INCLUDE AND EXCLUDE" data-bare-link="true">INCLUDE AND EXCLUDE</a>.</p>
126
+
127
+ <p>As typical Git LFS usage depends on tracking specific file types using
128
+ filename patterns defined in <code>.gitattributes</code> files, the <code>git lfs migrate</code>
129
+ command will examine, create, and modify <code>.gitattributes</code> files as
130
+ necessary.</p>
131
+
132
+ <p>The <code>import</code> mode (see <a href="#IMPORT" title="IMPORT" data-bare-link="true">IMPORT</a>) will convert Git objects of the file types
133
+ specified (e.g., with <code>--include</code>) to Git LFS pointers, and will add entries
134
+ for those file types to <code>.gitattributes</code> files, creating those files if they
135
+ do not exist. The result should be as if <code>git lfs track</code> commands had been
136
+ run at the points in your Git history corresponding to where each type of
137
+ converted file first appears. The exception is if the <code>--fixup</code> option is
138
+ given, in which case the <code>import</code> mode will only examine any existing
139
+ <code>.gitattributes</code> files and then convert Git objects which should be tracked
140
+ by Git LFS but are not yet.</p>
141
+
142
+ <p>The <code>export</code> mode (see <a href="#EXPORT" title="EXPORT" data-bare-link="true">EXPORT</a>) works as the reverse operation to the
143
+ <code>import</code> mode, converting any Git LFS pointers that match the file types
144
+ specified with <code>--include</code>, which must be given at least once. Note that
145
+ <code>.gitattributes</code> entries will not be removed, nor will the files; instead,
146
+ the <code>export</code> mode inserts "do not track" entries similar to those created
147
+ by the <code>git lfs untrack</code> command. The <code>--remote</code> option is available in
148
+ the <code>export</code> mode to specify the remote from which Git LFS objects should
149
+ be fetched if they do not exist in the local Git LFS object cache; if not
150
+ provided, <code>origin</code> is used by default.</p>
151
+
152
+ <p>The <code>info</code> mode (see <a href="#INFO" title="INFO" data-bare-link="true">INFO</a>) summarizes by file type (i.e., by filename
153
+ extension) the total number and size of files in a repository. Note that
154
+ like the other two modes, by default the <code>info</code> mode operates only on
155
+ the currently checked-out branch and only on commits which do not exist on
156
+ any remote, so to get a summary of the entire repository across all branches,
157
+ use the <code>--everything</code> option. If objects have already been converted to
158
+ Git LFS pointers, then by default the size of the referenced objects is
159
+ totaled and reported separately. You may also choose to ignore them by
160
+ using <code>--pointers=ignore</code> or to treat the pointers as files by using
161
+ <code>--pointers=no-follow</code>. (The latter option is akin to how existing Git LFS
162
+ pointers were handled by the <code>info</code> mode in prior versions of Git LFS).</p>
163
+
164
+ <p>When using the <code>--everything</code> option, take note that it means all refs
165
+ (local and remote) will be considered, but not necessarily all file types.
166
+ The <code>import</code> and <code>info</code> modes consider all file types by default, although
167
+ the <code>--include</code> and <code>--exclude</code> options constrain this behavior. Also
168
+ note that after importing across all branches with the <code>--everything</code> option
169
+ (and then checking to ensure the results are satisfactory!) it may be
170
+ convenient to update multiple branches on your remotes by using the <code>--all</code>
171
+ option to <code>git push</code>.</p>
172
+
173
+ <p>Unless the <code>--skip-fetch</code> option is given, <code>git lfs migrate</code> always begins by
174
+ fetching updated lists of refs from all the remotes returned by <code>git remote</code>,
175
+ but as noted above, after making changes to your local Git history while
176
+ converting objects, it will never automatically push those changes to your
177
+ remotes.</p>
178
+
179
+ <h2 id="MODES">MODES</h2>
180
+
181
+ <ul>
182
+ <li><p><code>info</code>
183
+ Show information about repository size. See <a href="#INFO" title="INFO" data-bare-link="true">INFO</a>.</p></li>
184
+ <li><p><code>import</code>
185
+ Convert Git objects to Git LFS pointers. See <a href="#IMPORT" title="IMPORT" data-bare-link="true">IMPORT</a> and [IMPORT (NO REWRITE)].</p></li>
186
+ <li><p><code>export</code>
187
+ Convert Git LFS pointers to Git objects. See <a href="#EXPORT" title="EXPORT" data-bare-link="true">EXPORT</a>.</p></li>
188
+ </ul>
189
+
190
+
191
+ <h2 id="OPTIONS">OPTIONS</h2>
192
+
193
+ <dl>
194
+ <dt><code>-I</code> <var>paths</var> <code>--include=</code><var>paths</var></dt><dd><p> See <a href="#INCLUDE-AND-EXCLUDE" title="INCLUDE AND EXCLUDE" data-bare-link="true">INCLUDE AND EXCLUDE</a>.</p></dd>
195
+ <dt><code>-X</code> <var>paths</var> <code>--exclude=</code><var>paths</var></dt><dd><p> See <a href="#INCLUDE-AND-EXCLUDE" title="INCLUDE AND EXCLUDE" data-bare-link="true">INCLUDE AND EXCLUDE</a>.</p></dd>
196
+ <dt><code>--include-ref</code>=<var>refname</var></dt><dd><p> See [INCLUDE AND EXCLUDE (REFS)].</p></dd>
197
+ <dt><code>--exclude-ref</code>=<var>refname</var></dt><dd><p> See [INCLUDE AND EXCLUDE (REFS)].</p></dd>
198
+ <dt><code>--skip-fetch</code></dt><dd><p> Assumes that the known set of remote references is complete, and should not
199
+ be refreshed when determining the set of "un-pushed" commits to migrate. Has
200
+ no effect when combined with <code>--include-ref</code> or <code>--exclude-ref</code>.</p></dd>
201
+ <dt><code>--everything</code></dt><dd><p> See [INCLUDE AND EXCLUDE (REFS)].</p>
202
+
203
+ <p> Note: Git refs are "case-sensitive" on all platforms in "packed from" (see
204
+ <code>git-pack-refs(1)</code>). On "case-insensitive" file systems, e.g. NTFS on Windows
205
+ or default APFS on macOS, <code>git-lfs-migrate(1)</code> would only migrate the first
206
+ ref if two or more refs are equal except for upper/lower case letters.</p></dd>
207
+ <dt class="flush"><code>--yes</code></dt><dd><p> Assume a yes answer to any prompts, permitting noninteractive use.
208
+ Currently, the only such prompt is the one asking whether to overwrite
209
+ (destroy) any working copy changes. Thus, specifying this option may cause
210
+ data loss if you are not careful.</p></dd>
211
+ <dt>[branch ...]</dt><dd><p> Migrate only the set of branches listed. If not given, <code>git-lfs-migrate(1)</code>
212
+ will migrate the currently checked out branch.</p>
213
+
214
+ <p> References beginning with <code>^</code> will be excluded, whereas branches that do not
215
+ begin with <code>^</code> will be included.</p>
216
+
217
+ <p> If any of <code>--include-ref</code> or <code>--exclude-ref</code> are given, the checked out
218
+ branch will not be appended, but branches given explicitly will be appended.</p></dd>
219
+ </dl>
220
+
221
+
222
+ <h3 id="INFO">INFO</h3>
223
+
224
+ <p>The <code>info</code> mode summarizes the sizes of file objects present in the Git history.
225
+ It supports all the core <code>migrate</code> options and these additional ones:</p>
226
+
227
+ <ul>
228
+ <li><p><code>--above=&lt;size></code>
229
+ Only count files whose individual filesize is above the given size. <code>size</code>
230
+ may be specified as a number of bytes, or a number followed by a storage
231
+ unit, e.g., "1b", "20 MB", "3 TiB", etc.</p>
232
+
233
+ <p> If a set of files sharing a common extension has no files in that set whose
234
+ individual size is above the given <code>--above</code> no files no entry for that set
235
+ will be shown.</p></li>
236
+ <li><p><code>--top=&lt;n></code>
237
+ Only display the top <code>n</code> entries, ordered by how many total files match the
238
+ given pathspec. The default is to show only the top 5 entries. When
239
+ existing Git LFS objects are found, an extra, separate "LFS Objects" line
240
+ is output in addition to the top <code>n</code> entries, unless the <code>--pointers</code>
241
+ option is used to change this behavior.</p></li>
242
+ <li><p><code>--unit=&lt;unit></code>
243
+ Format the number of bytes in each entry as a quantity of the storage unit
244
+ provided. Valid units include:</p>
245
+
246
+ <pre><code>* b, kib, mib, gib, tib, pib - for IEC storage units
247
+ * b, kb, mb, gb, tb, pb - for SI storage units
248
+ </code></pre>
249
+
250
+ <p> If a <code>--unit</code> is not specified, the largest unit that can fit the number of
251
+ counted bytes as a whole number quantity is chosen.</p></li>
252
+ <li><p><code>--pointers=[follow|no-follow|ignore]</code>
253
+ Treat existing Git LFS pointers in the history according to one of three
254
+ alternatives. In the default <code>follow</code> case, if any pointers are found,
255
+ an additional separate "LFS Objects" line item is output which summarizes
256
+ the total number and size of the Git LFS objects referenced by pointers.
257
+ In the <code>ignore</code> case, any pointers are simply ignored, while the <code>no-follow</code>
258
+ case replicates the behavior of the <code>info</code> mode in older Git LFS versions
259
+ and treats any pointers it finds as if they were regular files, so the
260
+ output totals only include the contents of the pointers, not the contents
261
+ of the objects to which they refer.</p></li>
262
+ <li><p><code>--fixup</code>
263
+ Infer <code>--include</code> and <code>--exclude</code> filters on a per-commit basis based on the
264
+ .gitattributes files in a repository. In practice, this option counts any
265
+ filepaths which should be tracked by Git LFS according to the repository's
266
+ .gitattributes file(s), but aren't already pointers. The .gitattributes
267
+ files are not reported, in contrast to the normal output of the <code>info</code> mode.
268
+ This option is incompatible with explicitly given <code>--include</code>, <code>--exclude</code>
269
+ filters and with any <code>--pointers</code> setting other than <code>ignore</code>, hence
270
+ <code>--fixup</code> implies <code>--pointers=ignore</code> if it is not explicitly set.</p></li>
271
+ </ul>
272
+
273
+
274
+ <p>The format of the output shows the filename pattern, the total size of the
275
+ file objects (excluding those below the <code>--above</code> threshold, if one was
276
+ defined), and the ratio of the number of files above the threshold to the
277
+ total number of files; this ratio is also shown as a percentage. For example:</p>
278
+
279
+ <pre><code>*.gif 93 MB 9480/10504 files(s) 90%
280
+ *.png 14 MB 1732/1877 files(s) 92%
281
+ </code></pre>
282
+
283
+ <p>By default only the top five entries are shown, but <code>--top</code> allows for
284
+ more or fewer to be output as desired.</p>
285
+
286
+ <h3 id="IMPORT">IMPORT</h3>
287
+
288
+ <p>The <code>import</code> mode migrates objects present in the Git history to pointer
289
+ files tracked and stored with Git LFS. It supports all the core <code>migrate</code>
290
+ options and these additional ones:</p>
291
+
292
+ <ul>
293
+ <li><p><code>--verbose</code>
294
+ Print the commit oid and filename of migrated files to STDOUT.</p></li>
295
+ <li><p><code>--above=&lt;size></code>
296
+ Only migrate files whose individual filesize is above the given size. <code>size</code>
297
+ may be specified as a number of bytes, or a number followed by a storage
298
+ unit, e.g., "1b", "20 MB", "3 TiB", etc.</p></li>
299
+ <li><p><code>--object-map=&lt;path></code>
300
+ Write to <code>path</code> a file with the mapping of each rewritten commits. The file
301
+ format is CSV with this pattern: <code>OLD-SHA</code>,<code>NEW-SHA</code></p></li>
302
+ <li><p><code>--no-rewrite</code>
303
+ Migrate objects to Git LFS in a new commit without rewriting Git
304
+ history. Please note that when this option is used, the <code>migrate import</code>
305
+ command will expect a different argument list, specialized options will
306
+ become available, and the core <code>migrate</code> options will be ignored. See
307
+ [IMPORT (NO REWRITE)].</p></li>
308
+ <li><p><code>--fixup</code>
309
+ Infer <code>--include</code> and <code>--exclude</code> filters on a per-commit basis based on the
310
+ <code>.gitattributes</code> files in a repository. In practice, this option imports any
311
+ filepaths which should be tracked by Git LFS according to the repository's
312
+ <code>.gitattributes</code> file(s), but aren't already pointers. This option is
313
+ incompatible with explicitly given <code>--include</code>, <code>--exclude</code> filters.</p></li>
314
+ </ul>
315
+
316
+
317
+ <p>If <code>--no-rewrite</code> is not provided and <code>--include</code> or <code>--exclude</code> (<code>-I</code>, <code>-X</code>,
318
+ respectively) are given, the <code>.gitattributes</code> will be modified to include any
319
+ new filepath patterns as given by those flags.</p>
320
+
321
+ <p>If <code>--no-rewrite</code> is not provided and neither of those flags are given, the
322
+ gitattributes will be incrementally modified to include new filepath extensions
323
+ as they are rewritten in history.</p>
324
+
325
+ <h3 id="IMPORT-NO-REWRITE-">IMPORT (NO REWRITE)</h3>
326
+
327
+ <p>The <code>import</code> mode has a special sub-mode enabled by the <code>--no-rewrite</code> flag.
328
+ This sub-mode will migrate objects to pointers as in the base <code>import</code>
329
+ mode, but will do so in a new commit without rewriting Git history. When using
330
+ this sub-mode, the base <code>migrate</code> options, such as <code>--include-ref</code>, will be
331
+ ignored, as will those for the base <code>import</code> mode. The <code>migrate</code> command will
332
+ also take a different argument list. As a result of these changes,
333
+ <code>--no-rewrite</code> will only operate on the current branch - any other interested
334
+ branches must have the generated commit merged in.</p>
335
+
336
+ <p>The <code>--no-rewrite</code> sub-mode supports the following options and arguments:</p>
337
+
338
+ <ul>
339
+ <li><p><code>-m &lt;message> --message=&lt;message></code>
340
+ Specifies a commit message for the newly created commit.</p></li>
341
+ <li><p>[file ...]
342
+ The list of files to import. These files must be tracked by patterns
343
+ specified in the gitattributes.</p></li>
344
+ </ul>
345
+
346
+
347
+ <p>If <code>--message</code> is given, the new commit will be created with the provided
348
+ message. If no message is given, a commit message will be generated based on the
349
+ file arguments.</p>
350
+
351
+ <h3 id="EXPORT">EXPORT</h3>
352
+
353
+ <p>The <code>export</code> mode migrates Git LFS pointer files present in the Git history out
354
+ of Git LFS, converting them into their corresponding object files. It supports
355
+ all the core <code>migrate</code> options and these additional ones:</p>
356
+
357
+ <ul>
358
+ <li><p><code>--verbose</code>
359
+ Print the commit oid and filename of migrated files to STDOUT.</p></li>
360
+ <li><p><code>--object-map=&lt;path></code>
361
+ Write to <code>path</code> a file with the mapping of each rewritten commit. The file
362
+ format is CSV with this pattern: <code>OLD-SHA</code>,<code>NEW-SHA</code></p></li>
363
+ <li><p><code>--remote=&lt;git-remote></code>
364
+ Download LFS objects from the provided <code>git-remote</code> during the export. If
365
+ not provided, defaults to <code>origin</code>.</p></li>
366
+ </ul>
367
+
368
+
369
+ <p>The <code>export</code> mode requires at minimum a pattern provided with the <code>--include</code>
370
+ argument to specify which files to export. Files matching the <code>--include</code>
371
+ patterns will be removed from Git LFS, while files matching the <code>--exclude</code>
372
+ patterns will retain their Git LFS status. The export command will modify the
373
+ <code>.gitattributes</code> to set/unset any filepath patterns as given by those flags.</p>
374
+
375
+ <h2 id="INCLUDE-AND-EXCLUDE">INCLUDE AND EXCLUDE</h2>
376
+
377
+ <p>You can specify that <code>git lfs migrate</code> should only convert files whose
378
+ pathspec matches the <code>--include</code> glob patterns and does not match the
379
+ <code>--exclude</code> glob patterns, either to reduce total migration time or to only
380
+ migrate part of your repo. Multiple patterns may be given using commas
381
+ as delimiters.</p>
382
+
383
+ <p>Pattern matching is done so as to be functionally equivalent to the pattern
384
+ matching format of <code>.gitattributes</code>. In addition to simple file extension
385
+ matches (e.g., <code>*.gif</code>) patterns may also specify directory paths, in which
386
+ case the <code>path/**</code> format may be used to match recursively.</p>
387
+
388
+ <h2 id="INCLUDE-AND-EXCLUDE-REFS-">INCLUDE AND EXCLUDE (REFS)</h2>
389
+
390
+ <p>You can specify that <code>git lfs migrate</code> should only convert files added
391
+ in commits reachable from certain references, namely those defined using one
392
+ or more <code>--include-ref</code> options, and should ignore files in commits reachable
393
+ from references defined in <code>--exclude-ref</code> options.</p>
394
+
395
+ <pre><code> D---E---F
396
+ / \
397
+ A---B------C refs/heads/my-feature
398
+ \ \
399
+ \ refs/heads/main
400
+ \
401
+ refs/remotes/origin/main
402
+ </code></pre>
403
+
404
+ <p>In the above configuration, the following commits are reachable by each ref:</p>
405
+
406
+ <pre><code>refs/heads/main: C, B, A
407
+ refs/heads/my-feature: F, E, D, B, A
408
+ refs/remote/origin/main: A
409
+ </code></pre>
410
+
411
+ <p>The following <code>git lfs migrate</code> options would, therefore, include commits
412
+ F, E, D, C, and B, but exclude commit A:</p>
413
+
414
+ <pre><code> --include-ref=refs/heads/my-feature
415
+ --include-ref=refs/heads/main
416
+ --exclude-ref=refs/remotes/origin/main
417
+ </code></pre>
418
+
419
+ <p>The presence of flag <code>--everything</code> indicates that all local and remote
420
+ references should be migrated.</p>
421
+
422
+ <h2 id="EXAMPLES">EXAMPLES</h2>
423
+
424
+ <h3 id="Migrate-unpushed-commits">Migrate unpushed commits</h3>
425
+
426
+ <p>A common use case for the migrate command is to convert large Git objects to
427
+ LFS before pushing your commits. By default, it only scans commits that don't
428
+ exist on any remote, so long as the repository is non-bare.</p>
429
+
430
+ <p>First, run <code>git lfs migrate info</code> to list the file types taking up the most
431
+ space in your repository:</p>
432
+
433
+ <pre><code>$ git lfs migrate info
434
+ migrate: Fetching remote refs: ..., done
435
+ migrate: Sorting commits: ..., done
436
+ migrate: Examining commits: 100% (1/1), done
437
+ *.mp3 284 MB 1/1 files(s) 100%
438
+ *.pdf 42 MB 8/8 files(s) 100%
439
+ *.psd 9.8 MB 15/15 files(s) 100%
440
+ *.ipynb 6.9 MB 6/6 files(s) 100%
441
+ *.csv 5.8 MB 2/2 files(s) 100%
442
+ </code></pre>
443
+
444
+ <p>Now, you can run <code>git lfs migrate import</code> to convert some file types to LFS:</p>
445
+
446
+ <pre><code>$ git lfs migrate import --include="*.mp3,*.psd"
447
+ migrate: Fetching remote refs: ..., done
448
+ migrate: Sorting commits: ..., done
449
+ migrate: Rewriting commits: 100% (1/1), done
450
+ main d2b959babd099fe70da1c1512e2475e8a24de163 -&gt; 136e706bf1ae79643915c134e17a6c933fd53c61
451
+ migrate: Updating refs: ..., done
452
+ </code></pre>
453
+
454
+ <p>If after conversion you find that some files in your working directory have
455
+ been replaced with Git LFS pointers, this is normal, and the working copies
456
+ of these files can be repopulated with their full expected contents by using
457
+ <code>git lfs checkout</code>.</p>
458
+
459
+ <h3 id="Migrate-local-history">Migrate local history</h3>
460
+
461
+ <p>You can also migrate the entire history of your repository:</p>
462
+
463
+ <pre><code># Check for large files and existing Git LFS objects in your local main branch
464
+ $ git lfs migrate info --include-ref=main
465
+
466
+ # Check for large files and existing Git LFS objects in every branch
467
+ $ git lfs migrate info --everything
468
+
469
+ # Check for large files in every branch, ignoring any existing Git LFS objects,
470
+ # and listing the top 100 or fewer results
471
+ $ git lfs migrate info --everything --pointers=ignore --top=100
472
+ </code></pre>
473
+
474
+ <p>The same flags will work in <code>import</code> mode:</p>
475
+
476
+ <pre><code># Convert all zip files in your main branch
477
+ $ git lfs migrate import --include-ref=main --include="*.zip"
478
+
479
+ # Convert all zip files in every local branch
480
+ $ git lfs migrate import --everything --include="*.zip"
481
+
482
+ # Convert all files over 100K in every local branch
483
+ $ git lfs migrate import --everything --above=100Kb
484
+ </code></pre>
485
+
486
+ <p>Note: This will require a force-push to any existing Git remotes. Using
487
+ the <code>--all</code> option when force-pushing may be convenient if many refs were
488
+ updated, e.g., after importing to Git LFS with the <code>--everything</code> option.</p>
489
+
490
+ <h3 id="Migrate-without-rewriting-local-history">Migrate without rewriting local history</h3>
491
+
492
+ <p>You can also migrate files without modifying the existing history of your
493
+ repository. Note that in the examples below, files in subdirectories are not
494
+ included because they are not explicitly specified.</p>
495
+
496
+ <p>Without a specified commit message:</p>
497
+
498
+ <pre><code>$ git lfs migrate import --no-rewrite test.zip *.mp3 *.psd
499
+ </code></pre>
500
+
501
+ <p>With a specified commit message:</p>
502
+
503
+ <pre><code>$ git lfs migrate import --no-rewrite \
504
+ -m "Import test.zip, .mp3, .psd files in root of repo" \
505
+ test.zip *.mp3 *.psd
506
+ </code></pre>
507
+
508
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
509
+
510
+ <p><span class="man-ref">git-lfs-checkout<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-track<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-untrack<span class="s">(1)</span></span>, <span class="man-ref">gitattributes<span class="s">(5)</span></span>.</p>
511
+
512
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
513
+
514
+
515
+ <ol class='man-decor man-foot man foot'>
516
+ <li class='tl'></li>
517
+ <li class='tc'>October 2021</li>
518
+ <li class='tr'>git-lfs-migrate(1)</li>
519
+ </ol>
520
+
521
+ </div>
522
+ </body>
523
+ </html>
man/git-lfs-pointer.1 ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-POINTER" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-pointer\fR \- Build, compare, and check pointers
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs pointer \-\-file=path/to/file\fR
11
+ .
12
+ .br
13
+ \fBgit lfs pointer \-\-file=path/to/file \-\-pointer=path/to/pointer\fR
14
+ .
15
+ .br
16
+ \fBgit lfs pointer \-\-file=path/to/file \-\-stdin\fR \fBgit lfs pointer \-\-check \-\-file=path/to/file\fR
17
+ .
18
+ .SH "Description"
19
+ Builds and optionally compares generated pointer files to ensure consistency between different Git LFS implementations\.
20
+ .
21
+ .SH "OPTIONS"
22
+ .
23
+ .TP
24
+ \fB\-\-file\fR
25
+ A local file to build the pointer from\.
26
+ .
27
+ .TP
28
+ \fB\-\-pointer\fR
29
+ A local file including the contents of a pointer generated from another implementation\. This is compared to the pointer generated from \fB\-\-file\fR\.
30
+ .
31
+ .TP
32
+ \fB\-\-stdin\fR
33
+ Reads the pointer from STDIN to compare with the pointer generated from \fB\-\-file\fR\.
34
+ .
35
+ .TP
36
+ \fB\-\-check\fR
37
+ Reads the pointer from STDIN (if \fB\-\-stdin\fR is given) or the filepath (if \fB\-\-file\fR) is given\. If neither or both of \fB\-\-stdin\fR and \fB\-\-file\fR are given, the invocation is invalid\. Exits 0 if the data read is a valid Git LFS pointer\. Exits 1 otherwise\.
38
+ .
39
+ .TP
40
+ \fB\-\-strict\fR:
41
+
42
+ .
43
+ .TP
44
+ \fB\-\-no\-strict\fR
45
+ In conjunction with \fB\-\-check\fR, \fB\-\-strict\fR verifies that the pointer is canonical; that is, it would be the one created by Git LFS\. If it is not, exits 2\. The default, for backwards compatibility, is \fB\-\-no\-strict\fR, but this may change in a future version\.
46
+ .
47
+ .SH "SEE ALSO"
48
+ Part of the git\-lfs(1) suite\.
man/git-lfs-pointer.1.html ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-pointer(1) - Build, compare, and check pointers</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#Description">Description</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-pointer(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-pointer(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-pointer</code> - <span class="man-whatis">Build, compare, and check pointers</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs pointer --file=path/to/file</code><br />
77
+ <code>git lfs pointer --file=path/to/file --pointer=path/to/pointer</code><br />
78
+ <code>git lfs pointer --file=path/to/file --stdin</code>
79
+ <code>git lfs pointer --check --file=path/to/file</code></p>
80
+
81
+ <h2 id="Description">Description</h2>
82
+
83
+ <p>Builds and optionally compares generated pointer files to ensure consistency
84
+ between different Git LFS implementations.</p>
85
+
86
+ <h2 id="OPTIONS">OPTIONS</h2>
87
+
88
+ <dl>
89
+ <dt class="flush"><code>--file</code></dt><dd><p> A local file to build the pointer from.</p></dd>
90
+ <dt><code>--pointer</code></dt><dd><p> A local file including the contents of a pointer generated from another
91
+ implementation. This is compared to the pointer generated from <code>--file</code>.</p></dd>
92
+ <dt class="flush"><code>--stdin</code></dt><dd><p> Reads the pointer from STDIN to compare with the pointer generated from
93
+ <code>--file</code>.</p></dd>
94
+ <dt class="flush"><code>--check</code></dt><dd><p> Reads the pointer from STDIN (if <code>--stdin</code> is given) or the filepath (if
95
+ <code>--file</code>) is given. If neither or both of <code>--stdin</code> and <code>--file</code> are given,
96
+ the invocation is invalid. Exits 0 if the data read is a valid Git LFS
97
+ pointer. Exits 1 otherwise.</p></dd>
98
+ <dt><code>--strict</code>:</dt><dd><p></p></dd>
99
+ <dt><code>--no-strict</code></dt><dd> In conjunction with <code>--check</code>, <code>--strict</code> verifies that the pointer is
100
+ canonical; that is, it would be the one created by Git LFS. If it is not,
101
+ exits 2. The default, for backwards compatibility, is <code>--no-strict</code>, but
102
+ this may change in a future version.</dd>
103
+ </dl>
104
+
105
+
106
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
107
+
108
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
109
+
110
+
111
+ <ol class='man-decor man-foot man foot'>
112
+ <li class='tl'></li>
113
+ <li class='tc'>October 2021</li>
114
+ <li class='tr'>git-lfs-pointer(1)</li>
115
+ </ol>
116
+
117
+ </div>
118
+ </body>
119
+ </html>
man/git-lfs-post-checkout.1 ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-POST\-CHECKOUT" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-post\-checkout\fR \- Git post\-checkout hook implementation
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs post\-checkout\fR \fIrev_before\fR \fIref_after\fR \fIis_branch_checkout\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Responds to Git post\-checkout events\. It makes sure that any files which are marked as lockable by \fBgit lfs track\fR are read\-only in the working copy, if not currently locked by the local user\.
14
+ .
15
+ .SH "SEE ALSO"
16
+ git\-lfs\-track(1)
17
+ .
18
+ .P
19
+ Part of the git\-lfs(1) suite\.
man/git-lfs-post-checkout.1.html ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-post-checkout(1) - Git post-checkout hook implementation</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#SEE-ALSO">SEE ALSO</a>
60
+ </div>
61
+
62
+ <ol class='man-decor man-head man head'>
63
+ <li class='tl'>git-lfs-post-checkout(1)</li>
64
+ <li class='tc'></li>
65
+ <li class='tr'>git-lfs-post-checkout(1)</li>
66
+ </ol>
67
+
68
+ <h2 id="NAME">NAME</h2>
69
+ <p class="man-name">
70
+ <code>git-lfs-post-checkout</code> - <span class="man-whatis">Git post-checkout hook implementation</span>
71
+ </p>
72
+
73
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
74
+
75
+ <p><code>git lfs post-checkout</code> <var>rev_before</var> <var>ref_after</var> <var>is_branch_checkout</var></p>
76
+
77
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
78
+
79
+ <p>Responds to Git post-checkout events. It makes sure that any files which are
80
+ marked as lockable by <code>git lfs track</code> are read-only in the working copy, if
81
+ not currently locked by the local user.</p>
82
+
83
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
84
+
85
+ <p><span class="man-ref">git-lfs-track<span class="s">(1)</span></span></p>
86
+
87
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
88
+
89
+
90
+ <ol class='man-decor man-foot man foot'>
91
+ <li class='tl'></li>
92
+ <li class='tc'>October 2021</li>
93
+ <li class='tr'>git-lfs-post-checkout(1)</li>
94
+ </ol>
95
+
96
+ </div>
97
+ </body>
98
+ </html>
man/git-lfs-post-commit.1 ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-POST\-COMMIT" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-post\-commit\fR \- Git post\-commit hook implementation
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs post\-commit\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Responds to Git post\-commit events\. It makes sure that any files which are marked as lockable by \fBgit lfs track\fR are read\-only in the working copy, if not currently locked by the local user\.
14
+ .
15
+ .P
16
+ Where the \fBgit lfs post\-merge\fR command, which has a similar purpose, must examine all files in the working copy, \fBgit lfs post\-commit\fR can limit itself checking only those files which have changed in \fBHEAD\fR\. It primarily handles newly added lockable files which have not yet been made read\-only\.
17
+ .
18
+ .SH "SEE ALSO"
19
+ git\-lfs\-post\-merge(1), git\-lfs\-track(1)
20
+ .
21
+ .P
22
+ Part of the git\-lfs(1) suite\.
man/git-lfs-post-commit.1.html ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-post-commit(1) - Git post-commit hook implementation</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#SEE-ALSO">SEE ALSO</a>
60
+ </div>
61
+
62
+ <ol class='man-decor man-head man head'>
63
+ <li class='tl'>git-lfs-post-commit(1)</li>
64
+ <li class='tc'></li>
65
+ <li class='tr'>git-lfs-post-commit(1)</li>
66
+ </ol>
67
+
68
+ <h2 id="NAME">NAME</h2>
69
+ <p class="man-name">
70
+ <code>git-lfs-post-commit</code> - <span class="man-whatis">Git post-commit hook implementation</span>
71
+ </p>
72
+
73
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
74
+
75
+ <p><code>git lfs post-commit</code></p>
76
+
77
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
78
+
79
+ <p>Responds to Git post-commit events. It makes sure that any files which are
80
+ marked as lockable by <code>git lfs track</code> are read-only in the working copy, if
81
+ not currently locked by the local user.</p>
82
+
83
+ <p>Where the <code>git lfs post-merge</code> command, which has a similar purpose, must
84
+ examine all files in the working copy, <code>git lfs post-commit</code> can limit
85
+ itself checking only those files which have changed in <code>HEAD</code>. It primarily
86
+ handles newly added lockable files which have not yet been made read-only.</p>
87
+
88
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
89
+
90
+ <p><span class="man-ref">git-lfs-post-merge<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-track<span class="s">(1)</span></span></p>
91
+
92
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
93
+
94
+
95
+ <ol class='man-decor man-foot man foot'>
96
+ <li class='tl'></li>
97
+ <li class='tc'>October 2021</li>
98
+ <li class='tr'>git-lfs-post-commit(1)</li>
99
+ </ol>
100
+
101
+ </div>
102
+ </body>
103
+ </html>
man/git-lfs-post-merge.1 ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-POST\-MERGE" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-post\-merge\fR \- Git post\-merge hook implementation
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs post\-merge\fR \fIis_squash\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Responds to Git post\-merge events\. It makes sure that any files which are marked as lockable by \fBgit lfs track\fR are read\-only in the working copy, if not currently locked by the local user\.
14
+ .
15
+ .SH "SEE ALSO"
16
+ git\-lfs\-track(1)
17
+ .
18
+ .P
19
+ Part of the git\-lfs(1) suite\.
man/git-lfs-post-merge.1.html ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-post-merge(1) - Git post-merge hook implementation</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#SEE-ALSO">SEE ALSO</a>
60
+ </div>
61
+
62
+ <ol class='man-decor man-head man head'>
63
+ <li class='tl'>git-lfs-post-merge(1)</li>
64
+ <li class='tc'></li>
65
+ <li class='tr'>git-lfs-post-merge(1)</li>
66
+ </ol>
67
+
68
+ <h2 id="NAME">NAME</h2>
69
+ <p class="man-name">
70
+ <code>git-lfs-post-merge</code> - <span class="man-whatis">Git post-merge hook implementation</span>
71
+ </p>
72
+
73
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
74
+
75
+ <p><code>git lfs post-merge</code> <var>is_squash</var></p>
76
+
77
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
78
+
79
+ <p>Responds to Git post-merge events. It makes sure that any files which are
80
+ marked as lockable by <code>git lfs track</code> are read-only in the working copy, if
81
+ not currently locked by the local user.</p>
82
+
83
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
84
+
85
+ <p><span class="man-ref">git-lfs-track<span class="s">(1)</span></span></p>
86
+
87
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
88
+
89
+
90
+ <ol class='man-decor man-foot man foot'>
91
+ <li class='tl'></li>
92
+ <li class='tc'>October 2021</li>
93
+ <li class='tr'>git-lfs-post-merge(1)</li>
94
+ </ol>
95
+
96
+ </div>
97
+ </body>
98
+ </html>
man/git-lfs-pre-push.1 ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-PRE\-PUSH" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-pre\-push\fR \- Git pre\-push hook implementation
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs pre\-push\fR \fIremote\fR [remoteurl]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Responds to Git pre\-hook events\. It reads the range of commits from STDIN, in the following format:
14
+ .
15
+ .IP "" 4
16
+ .
17
+ .nf
18
+
19
+ <local\-ref> SP <local\-sha1> SP <remote\-ref> SP <remote\-sha1> \en
20
+ .
21
+ .fi
22
+ .
23
+ .IP "" 0
24
+ .
25
+ .P
26
+ It also takes the remote name and URL as arguments\.
27
+ .
28
+ .P
29
+ If any of those Git objects are associated with Git LFS objects, those objects will be pushed to the Git LFS API\.
30
+ .
31
+ .P
32
+ In the case of pushing a new branch, the list of Git objects will be all of the Git objects in this branch\.
33
+ .
34
+ .P
35
+ In the case of deleting a branch, no attempts to push Git LFS objects will be made\.
36
+ .
37
+ .SH "OPTIONS"
38
+ .
39
+ .TP
40
+ \fBGIT_LFS_SKIP_PUSH\fR
41
+ Do nothing on pre\-push\. For more, see: git\-lfs\-config(5)\.
42
+ .
43
+ .SH "SEE ALSO"
44
+ git\-lfs\-clean(1), git\-lfs\-push(1)\.
45
+ .
46
+ .P
47
+ Part of the git\-lfs(1) suite\.
man/git-lfs-pre-push.1.html ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-pre-push(1) - Git pre-push hook implementation</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#SEE-ALSO">SEE ALSO</a>
61
+ </div>
62
+
63
+ <ol class='man-decor man-head man head'>
64
+ <li class='tl'>git-lfs-pre-push(1)</li>
65
+ <li class='tc'></li>
66
+ <li class='tr'>git-lfs-pre-push(1)</li>
67
+ </ol>
68
+
69
+ <h2 id="NAME">NAME</h2>
70
+ <p class="man-name">
71
+ <code>git-lfs-pre-push</code> - <span class="man-whatis">Git pre-push hook implementation</span>
72
+ </p>
73
+
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+
76
+ <p><code>git lfs pre-push</code> <var>remote</var> [remoteurl]</p>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+
80
+ <p>Responds to Git pre-hook events. It reads the range of commits from STDIN, in
81
+ the following format:</p>
82
+
83
+ <pre><code>&lt;local-ref> SP &lt;local-sha1> SP &lt;remote-ref> SP &lt;remote-sha1> \n
84
+ </code></pre>
85
+
86
+ <p>It also takes the remote name and URL as arguments.</p>
87
+
88
+ <p>If any of those Git objects are associated with Git LFS objects, those
89
+ objects will be pushed to the Git LFS API.</p>
90
+
91
+ <p>In the case of pushing a new branch, the list of Git objects will be all of
92
+ the Git objects in this branch.</p>
93
+
94
+ <p>In the case of deleting a branch, no attempts to push Git LFS objects will be
95
+ made.</p>
96
+
97
+ <h2 id="OPTIONS">OPTIONS</h2>
98
+
99
+ <dl>
100
+ <dt><code>GIT_LFS_SKIP_PUSH</code></dt><dd> Do nothing on pre-push. For more, see: <span class="man-ref">git-lfs-config<span class="s">(5)</span></span>.</dd>
101
+ </dl>
102
+
103
+
104
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
105
+
106
+ <p><span class="man-ref">git-lfs-clean<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-push<span class="s">(1)</span></span>.</p>
107
+
108
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
109
+
110
+
111
+ <ol class='man-decor man-foot man foot'>
112
+ <li class='tl'></li>
113
+ <li class='tc'>October 2021</li>
114
+ <li class='tr'>git-lfs-pre-push(1)</li>
115
+ </ol>
116
+
117
+ </div>
118
+ </body>
119
+ </html>
man/git-lfs-prune.1 ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-PRUNE" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-prune\fR \- Delete old LFS files from local storage
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs prune\fR \fIoptions\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Deletes local copies of LFS files which are old, thus freeing up disk space\. Prune operates by enumerating all the locally stored objects, and then deleting any which are not referenced by at least ONE of the following:
14
+ .
15
+ .IP "\(bu" 4
16
+ the current checkout
17
+ .
18
+ .IP "\(bu" 4
19
+ all existing stashes
20
+ .
21
+ .IP "\(bu" 4
22
+ a \'recent branch\'; see \fIRECENT FILES\fR
23
+ .
24
+ .IP "\(bu" 4
25
+ a \'recent commit\' on the current branch or recent branches; see \fIRECENT FILES\fR
26
+ .
27
+ .IP "\(bu" 4
28
+ a commit which has not been pushed; see \fIUNPUSHED LFS FILES\fR
29
+ .
30
+ .IP "\(bu" 4
31
+ any other worktree checkouts; see git\-worktree(1)
32
+ .
33
+ .IP "" 0
34
+ .
35
+ .P
36
+ In general terms, prune will delete files you\'re not currently using and which are not \'recent\', so long as they\'ve been pushed i\.e\. the local copy is not the only one\.
37
+ .
38
+ .P
39
+ The reflog is not considered, only commits\. Therefore LFS objects that are only referenced by orphaned commits are always deleted\.
40
+ .
41
+ .P
42
+ Note: you should not run \fBgit lfs prune\fR if you have different repositories sharing the same custom storage directory; see git\-lfs\-config(1) for more details about \fBlfs\.storage\fR option\.
43
+ .
44
+ .SH "OPTIONS"
45
+ .
46
+ .IP "\(bu" 4
47
+ \fB\-\-dry\-run\fR \fB\-d\fR Don\'t actually delete anything, just report on what would have been done
48
+ .
49
+ .IP "\(bu" 4
50
+ \fB\-\-force\fR \fB\-f\fR Prune all objects except unpushed objects, including objects required for currently checked out refs\. Implies \fB\-\-recent\fR\.
51
+ .
52
+ .IP "\(bu" 4
53
+ \fB\-\-recent\fR Prune even objects that would normally be preserved by the configuration options specified below in \fIRECENT FILES\fR\.
54
+ .
55
+ .IP "\(bu" 4
56
+ \fB\-\-verify\-remote\fR \fB\-c\fR Contact the remote and check that copies of the files we would delete definitely exist before deleting\. See \fIVERIFY REMOTE\fR\.
57
+ .
58
+ .IP "\(bu" 4
59
+ \fB\-\-no\-verify\-remote\fR Disables remote verification if lfs\.pruneverifyremotealways was enabled in settings\. See \fIVERIFY REMOTE\fR\.
60
+ .
61
+ .IP "\(bu" 4
62
+ \fB\-\-verbose\fR \fB\-v\fR Report the full detail of what is/would be deleted\.
63
+ .
64
+ .IP "" 0
65
+ .
66
+ .SH "RECENT FILES"
67
+ Prune won\'t delete LFS files referenced by \'recent\' commits, in case you want to use them again without having to download\. The definition of \'recent\' is derived from the one used by git\-lfs\-fetch(1) to download recent objects with the \fB\-\-recent\fR option, with an offset of a number of days (default 3) to ensure that we always keep files you download for a few days\.
68
+ .
69
+ .P
70
+ Here are the git\-config(1) settings that control this behaviour:
71
+ .
72
+ .IP "\(bu" 4
73
+ \fBlfs\.pruneoffsetdays\fR
74
+ .
75
+ .br
76
+ The number of extra days added to the fetch recent settings when using them to decide when to prune\. So for a reference to be considered old enough to prune, it has to be this many days older than the oldest reference that would be downloaded via \fBgit lfs fetch \-\-recent\fR\. Only used if the relevant fetch recent \'days\' setting is non\-zero\. Default 3 days\.
77
+ .
78
+ .IP "\(bu" 4
79
+ \fBlfs\.fetchrecentrefsdays\fR
80
+ .
81
+ .br
82
+ \fBlfs\.fetchrecentremoterefs\fR
83
+ .
84
+ .br
85
+ \fBlfs\.fetchrecentcommitsdays\fR
86
+ .
87
+ .br
88
+ These have the same meaning as git\-lfs\-fetch(1) with the \fB\-\-recent\fR option, they are used as a base for the offset above\. Anything which falls outside of this offsetted window is considered old enough to prune\. If a day value is zero, that condition is not used at all to retain objects and they will be pruned\.
89
+ .
90
+ .IP "" 0
91
+ .
92
+ .SH "UNPUSHED LFS FILES"
93
+ When the only copy of an LFS file is local, and it is still reachable from any reference, that file can never be pruned, regardless of how old it is\.
94
+ .
95
+ .P
96
+ To determine whether an LFS file has been pushed, we check the difference between local refs and remote refs; where the local ref is ahead, any LFS files referenced in those commits is unpushed and will not be deleted\. This works because the LFS pre\-push hook always ensures that LFS files are pushed before the remote branch is updated\.
97
+ .
98
+ .P
99
+ See \fIDEFAULT REMOTE\fR, for which remote is considered \'pushed\' for pruning purposes\.
100
+ .
101
+ .SH "VERIFY REMOTE"
102
+ The \fB\-\-verify\-remote\fR option calls the remote to ensure that any LFS files to be deleted have copies on the remote before actually deleting them\.
103
+ .
104
+ .P
105
+ Usually the check performed by \fIUNPUSHED LFS FILES\fR is enough to determine that files have been pushed, but if you want to be extra sure at the expense of extra overhead you can make prune actually call the remote API and verify the presence of the files you\'re about to delete locally\. See \fIDEFAULT REMOTE\fR for which remote is checked\.
106
+ .
107
+ .P
108
+ You can make this behaviour the default by setting \fBlfs\.pruneverifyremotealways\fR to true\.
109
+ .
110
+ .P
111
+ In addition to the overhead of calling the remote, using this option also requires prune to distinguish between totally unreachable files (e\.g\. those that were added to the index but never committed, or referenced only by orphaned commits), and files which are still referenced, but by commits which are prunable\. This makes the prune process take longer\.
112
+ .
113
+ .SH "DEFAULT REMOTE"
114
+ When identifying \fIUNPUSHED LFS FILES\fR and performing \fIVERIFY REMOTE\fR, a single remote, \'origin\', is normally used as the reference\. This one remote is considered canonical; even if you use multiple remotes, you probably want to retain your local copies until they\'ve made it to that remote\. \'origin\' is used by default because that will usually be a main central repo, or your fork of it \- in both cases that\'s a valid remote backup of your work\. If origin doesn\'t exist then by default nothing will be pruned because everything is treated as \'unpushed\'\.
115
+ .
116
+ .P
117
+ You can alter the remote via git config: \fBlfs\.pruneremotetocheck\fR\. Set this to a different remote name to check that one instead of \'origin\'\.
118
+ .
119
+ .SH "SEE ALSO"
120
+ git\-lfs\-fetch(1)
121
+ .
122
+ .P
123
+ Part of the git\-lfs(1) suite\.
man/git-lfs-prune.1.html ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-prune(1) - Delete old LFS files from local storage</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#RECENT-FILES">RECENT FILES</a>
61
+ <a href="#UNPUSHED-LFS-FILES">UNPUSHED LFS FILES</a>
62
+ <a href="#VERIFY-REMOTE">VERIFY REMOTE</a>
63
+ <a href="#DEFAULT-REMOTE">DEFAULT REMOTE</a>
64
+ <a href="#SEE-ALSO">SEE ALSO</a>
65
+ </div>
66
+
67
+ <ol class='man-decor man-head man head'>
68
+ <li class='tl'>git-lfs-prune(1)</li>
69
+ <li class='tc'></li>
70
+ <li class='tr'>git-lfs-prune(1)</li>
71
+ </ol>
72
+
73
+ <h2 id="NAME">NAME</h2>
74
+ <p class="man-name">
75
+ <code>git-lfs-prune</code> - <span class="man-whatis">Delete old LFS files from local storage</span>
76
+ </p>
77
+
78
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
79
+
80
+ <p><code>git lfs prune</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">options</a></p>
81
+
82
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
83
+
84
+ <p>Deletes local copies of LFS files which are old, thus freeing up disk space.
85
+ Prune operates by enumerating all the locally stored objects, and then deleting
86
+ any which are not referenced by at least ONE of the following:</p>
87
+
88
+ <ul>
89
+ <li>the current checkout</li>
90
+ <li>all existing stashes</li>
91
+ <li>a 'recent branch'; see <a href="#RECENT-FILES" title="RECENT FILES" data-bare-link="true">RECENT FILES</a></li>
92
+ <li>a 'recent commit' on the current branch or recent branches; see <a href="#RECENT-FILES" title="RECENT FILES" data-bare-link="true">RECENT FILES</a></li>
93
+ <li>a commit which has not been pushed; see <a href="#UNPUSHED-LFS-FILES" title="UNPUSHED LFS FILES" data-bare-link="true">UNPUSHED LFS FILES</a></li>
94
+ <li>any other worktree checkouts; see <span class="man-ref">git-worktree<span class="s">(1)</span></span></li>
95
+ </ul>
96
+
97
+
98
+ <p>In general terms, prune will delete files you're not currently using and which
99
+ are not 'recent', so long as they've been pushed i.e. the local copy is not the
100
+ only one.</p>
101
+
102
+ <p>The reflog is not considered, only commits. Therefore LFS objects that are
103
+ only referenced by orphaned commits are always deleted.</p>
104
+
105
+ <p>Note: you should not run <code>git lfs prune</code> if you have different repositories
106
+ sharing the same custom storage directory; see <span class="man-ref">git-lfs-config<span class="s">(1)</span></span> for more
107
+ details about <code>lfs.storage</code> option.</p>
108
+
109
+ <h2 id="OPTIONS">OPTIONS</h2>
110
+
111
+ <ul>
112
+ <li><p><code>--dry-run</code> <code>-d</code>
113
+ Don't actually delete anything, just report on what would have been done</p></li>
114
+ <li><p><code>--force</code> <code>-f</code>
115
+ Prune all objects except unpushed objects, including objects required for
116
+ currently checked out refs. Implies <code>--recent</code>.</p></li>
117
+ <li><p><code>--recent</code>
118
+ Prune even objects that would normally be preserved by the configuration
119
+ options specified below in <a href="#RECENT-FILES" title="RECENT FILES" data-bare-link="true">RECENT FILES</a>.</p></li>
120
+ <li><p><code>--verify-remote</code> <code>-c</code>
121
+ Contact the remote and check that copies of the files we would delete
122
+ definitely exist before deleting. See <a href="#VERIFY-REMOTE" title="VERIFY REMOTE" data-bare-link="true">VERIFY REMOTE</a>.</p></li>
123
+ <li><p><code>--no-verify-remote</code>
124
+ Disables remote verification if lfs.pruneverifyremotealways was enabled in
125
+ settings. See <a href="#VERIFY-REMOTE" title="VERIFY REMOTE" data-bare-link="true">VERIFY REMOTE</a>.</p></li>
126
+ <li><p><code>--verbose</code> <code>-v</code>
127
+ Report the full detail of what is/would be deleted.</p></li>
128
+ </ul>
129
+
130
+
131
+ <h2 id="RECENT-FILES">RECENT FILES</h2>
132
+
133
+ <p>Prune won't delete LFS files referenced by 'recent' commits, in case you want
134
+ to use them again without having to download. The definition of 'recent' is
135
+ derived from the one used by <span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span> to download recent objects with
136
+ the <code>--recent</code> option, with an offset of a number of days (default 3) to ensure
137
+ that we always keep files you download for a few days.</p>
138
+
139
+ <p>Here are the <span class="man-ref">git-config<span class="s">(1)</span></span> settings that control this behaviour:</p>
140
+
141
+ <ul>
142
+ <li><p><code>lfs.pruneoffsetdays</code> <br />
143
+ The number of extra days added to the fetch recent settings when using them
144
+ to decide when to prune. So for a reference to be considered old enough to
145
+ prune, it has to be this many days older than the oldest reference that would
146
+ be downloaded via <code>git lfs fetch --recent</code>. Only used if the relevant
147
+ fetch recent 'days' setting is non-zero. Default 3 days.</p></li>
148
+ <li><p><code>lfs.fetchrecentrefsdays</code> <br />
149
+ <code>lfs.fetchrecentremoterefs</code> <br />
150
+ <code>lfs.fetchrecentcommitsdays</code> <br />
151
+ These have the same meaning as <span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span> with the <code>--recent</code> option,
152
+ they are used as a base for the offset above. Anything which falls outside
153
+ of this offsetted window is considered old enough to prune. If a day value is
154
+ zero, that condition is not used at all to retain objects and they will be
155
+ pruned.</p></li>
156
+ </ul>
157
+
158
+
159
+ <h2 id="UNPUSHED-LFS-FILES">UNPUSHED LFS FILES</h2>
160
+
161
+ <p>When the only copy of an LFS file is local, and it is still reachable from any
162
+ reference, that file can never be pruned, regardless of how old it is.</p>
163
+
164
+ <p>To determine whether an LFS file has been pushed, we check the difference
165
+ between local refs and remote refs; where the local ref is ahead, any LFS files
166
+ referenced in those commits is unpushed and will not be deleted. This works
167
+ because the LFS pre-push hook always ensures that LFS files are pushed before
168
+ the remote branch is updated.</p>
169
+
170
+ <p>See <a href="#DEFAULT-REMOTE" title="DEFAULT REMOTE" data-bare-link="true">DEFAULT REMOTE</a>, for which remote is considered 'pushed' for pruning
171
+ purposes.</p>
172
+
173
+ <h2 id="VERIFY-REMOTE">VERIFY REMOTE</h2>
174
+
175
+ <p>The <code>--verify-remote</code> option calls the remote to ensure that any LFS files to be
176
+ deleted have copies on the remote before actually deleting them.</p>
177
+
178
+ <p>Usually the check performed by <a href="#UNPUSHED-LFS-FILES" title="UNPUSHED LFS FILES" data-bare-link="true">UNPUSHED LFS FILES</a> is enough to determine that
179
+ files have been pushed, but if you want to be extra sure at the expense of extra
180
+ overhead you can make prune actually call the remote API and verify the
181
+ presence of the files you're about to delete locally. See <a href="#DEFAULT-REMOTE" title="DEFAULT REMOTE" data-bare-link="true">DEFAULT REMOTE</a> for
182
+ which remote is checked.</p>
183
+
184
+ <p>You can make this behaviour the default by setting <code>lfs.pruneverifyremotealways</code>
185
+ to true.</p>
186
+
187
+ <p>In addition to the overhead of calling the remote, using this option also
188
+ requires prune to distinguish between totally unreachable files (e.g. those that
189
+ were added to the index but never committed, or referenced only by orphaned
190
+ commits), and files which are still referenced, but by commits which are
191
+ prunable. This makes the prune process take longer.</p>
192
+
193
+ <h2 id="DEFAULT-REMOTE">DEFAULT REMOTE</h2>
194
+
195
+ <p>When identifying <a href="#UNPUSHED-LFS-FILES" title="UNPUSHED LFS FILES" data-bare-link="true">UNPUSHED LFS FILES</a> and performing <a href="#VERIFY-REMOTE" title="VERIFY REMOTE" data-bare-link="true">VERIFY REMOTE</a>, a single
196
+ remote, 'origin', is normally used as the reference. This one remote is
197
+ considered canonical; even if you use multiple remotes, you probably want to
198
+ retain your local copies until they've made it to that remote. 'origin' is used
199
+ by default because that will usually be a main central repo, or your fork of
200
+ it - in both cases that's a valid remote backup of your work. If origin doesn't
201
+ exist then by default nothing will be pruned because everything is treated as
202
+ 'unpushed'.</p>
203
+
204
+ <p>You can alter the remote via git config: <code>lfs.pruneremotetocheck</code>. Set this
205
+ to a different remote name to check that one instead of 'origin'.</p>
206
+
207
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
208
+
209
+ <p><span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span></p>
210
+
211
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
212
+
213
+
214
+ <ol class='man-decor man-foot man foot'>
215
+ <li class='tl'></li>
216
+ <li class='tc'>October 2021</li>
217
+ <li class='tr'>git-lfs-prune(1)</li>
218
+ </ol>
219
+
220
+ </div>
221
+ </body>
222
+ </html>
man/git-lfs-pull.1 ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GIT\-LFS\-PULL" "1" "October 2021" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBgit\-lfs\-pull\fR \- Download all Git LFS files for current ref & checkout
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBgit lfs pull\fR [options] [\fIremote\fR]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Download Git LFS objects for the currently checked out ref, and update the working copy with the downloaded content if required\.
14
+ .
15
+ .P
16
+ This is equivalent to running the following 2 commands:
17
+ .
18
+ .P
19
+ git lfs fetch [options] [\fIremote\fR] git lfs checkout
20
+ .
21
+ .SH "OPTIONS"
22
+ .
23
+ .TP
24
+ \fB\-I\fR \fIpaths\fR \fB\-\-include=\fR\fIpaths\fR
25
+ Specify lfs\.fetchinclude just for this invocation; see [INCLUSION & EXCLUSION]
26
+ .
27
+ .TP
28
+ \fB\-X\fR \fIpaths\fR \fB\-\-exclude=\fR\fIpaths\fR
29
+ Specify lfs\.fetchexclude just for this invocation; see [INCLUSION & EXCLUSION]
30
+ .
31
+ .SH "INCLUSION & EXCLUSION"
32
+ 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\.
33
+ .
34
+ .P
35
+ In gitconfig, set lfs\.fetchinclude and lfs\.fetchexclude to comma\-separated lists of paths to include/exclude in the fetch (wildcard matching as per gitignore)\. Only paths which are matched by fetchinclude and not matched by fetchexclude will have objects fetched for them\.
36
+ .
37
+ .P
38
+ Note that using the command\-line options \fB\-I\fR and \fB\-X\fR override the respective configuration settings\. Setting either option to an empty string clears the value\.
39
+ .
40
+ .SH "DEFAULT REMOTE"
41
+ Without arguments, pull downloads from the default remote\. The default remote is the same as for \fBgit pull\fR, i\.e\. based on the remote branch you\'re tracking first, or origin otherwise\.
42
+ .
43
+ .SH "SEE ALSO"
44
+ git\-lfs\-fetch(1), git\-lfs\-checkout(1)\.
45
+ .
46
+ .P
47
+ Part of the git\-lfs(1) suite\.
man/git-lfs-pull.1.html ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-lfs-pull(1) - Download all Git LFS files for current ref &amp;amp; checkout</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .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}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .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}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ 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}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#INCLUSION-EXCLUSION">INCLUSION &amp; EXCLUSION</a>
61
+ <a href="#DEFAULT-REMOTE">DEFAULT REMOTE</a>
62
+ <a href="#SEE-ALSO">SEE ALSO</a>
63
+ </div>
64
+
65
+ <ol class='man-decor man-head man head'>
66
+ <li class='tl'>git-lfs-pull(1)</li>
67
+ <li class='tc'></li>
68
+ <li class='tr'>git-lfs-pull(1)</li>
69
+ </ol>
70
+
71
+ <h2 id="NAME">NAME</h2>
72
+ <p class="man-name">
73
+ <code>git-lfs-pull</code> - <span class="man-whatis">Download all Git LFS files for current ref &amp; checkout</span>
74
+ </p>
75
+
76
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
77
+
78
+ <p><code>git lfs pull</code> [options] [<var>remote</var>]</p>
79
+
80
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
81
+
82
+ <p>Download Git LFS objects for the currently checked out ref, and update
83
+ the working copy with the downloaded content if required.</p>
84
+
85
+ <p>This is equivalent to running the following 2 commands:</p>
86
+
87
+ <p>git lfs fetch [options] [<var>remote</var>]
88
+ git lfs checkout</p>
89
+
90
+ <h2 id="OPTIONS">OPTIONS</h2>
91
+
92
+ <dl>
93
+ <dt><code>-I</code> <var>paths</var> <code>--include=</code><var>paths</var></dt><dd><p>Specify lfs.fetchinclude just for this invocation; see [INCLUSION &amp; EXCLUSION]</p></dd>
94
+ <dt><code>-X</code> <var>paths</var> <code>--exclude=</code><var>paths</var></dt><dd><p>Specify lfs.fetchexclude just for this invocation; see [INCLUSION &amp; EXCLUSION]</p></dd>
95
+ </dl>
96
+
97
+
98
+ <h2 id="INCLUSION-EXCLUSION">INCLUSION &amp; EXCLUSION</h2>
99
+
100
+ <p>You can configure Git LFS to only fetch objects to satisfy references in certain
101
+ paths of the repo, and/or to exclude certain paths of the repo, to reduce the
102
+ time you spend downloading things you do not use.</p>
103
+
104
+ <p>In gitconfig, set lfs.fetchinclude and lfs.fetchexclude to comma-separated lists
105
+ of paths to include/exclude in the fetch (wildcard matching as per gitignore).
106
+ Only paths which are matched by fetchinclude and not matched by fetchexclude
107
+ will have objects fetched for them.</p>
108
+
109
+ <p>Note that using the command-line options <code>-I</code> and <code>-X</code> override the respective
110
+ configuration settings. Setting either option to an empty string clears the
111
+ value.</p>
112
+
113
+ <h2 id="DEFAULT-REMOTE">DEFAULT REMOTE</h2>
114
+
115
+ <p>Without arguments, pull downloads from the default remote. The default remote is
116
+ the same as for <code>git pull</code>, i.e. based on the remote branch you're tracking
117
+ first, or origin otherwise.</p>
118
+
119
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
120
+
121
+ <p><span class="man-ref">git-lfs-fetch<span class="s">(1)</span></span>, <span class="man-ref">git-lfs-checkout<span class="s">(1)</span></span>.</p>
122
+
123
+ <p>Part of the <span class="man-ref">git-lfs<span class="s">(1)</span></span> suite.</p>
124
+
125
+
126
+ <ol class='man-decor man-foot man foot'>
127
+ <li class='tl'></li>
128
+ <li class='tc'>October 2021</li>
129
+ <li class='tr'>git-lfs-pull(1)</li>
130
+ </ol>
131
+
132
+ </div>
133
+ </body>
134
+ </html>