khanglam7012
commited on
Commit
•
353e225
1
Parent(s):
3897b8f
Initial commit
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +1 -0
- CHANGELOG.md +2032 -0
- README.md +248 -19
- git-lfs +0 -0
- git-lfs-linux-amd64-v3.0.2.tar.gz +3 -0
- install.sh +22 -0
- man/git-lfs-checkout.1 +62 -0
- man/git-lfs-checkout.1.html +138 -0
- man/git-lfs-clean.1 +25 -0
- man/git-lfs-clean.1.html +104 -0
- man/git-lfs-clone.1 +49 -0
- man/git-lfs-clone.1.html +134 -0
- man/git-lfs-config.5 +477 -0
- man/git-lfs-config.5.html +520 -0
- man/git-lfs-env.1 +16 -0
- man/git-lfs-env.1.html +94 -0
- man/git-lfs-ext.1 +32 -0
- man/git-lfs-ext.1.html +109 -0
- man/git-lfs-fetch.1 +150 -0
- man/git-lfs-fetch.1.html +228 -0
- man/git-lfs-filter-process.1 +36 -0
- man/git-lfs-filter-process.1.html +115 -0
- man/git-lfs-fsck.1 +38 -0
- man/git-lfs-fsck.1.html +116 -0
- man/git-lfs-install.1 +58 -0
- man/git-lfs-install.1.html +138 -0
- man/git-lfs-lock.1 +32 -0
- man/git-lfs-lock.1.html +113 -0
- man/git-lfs-locks.1 +53 -0
- man/git-lfs-locks.1.html +123 -0
- man/git-lfs-logs.1 +44 -0
- man/git-lfs-logs.1.html +117 -0
- man/git-lfs-ls-files.1 +62 -0
- man/git-lfs-ls-files.1.html +122 -0
- man/git-lfs-migrate.1 +405 -0
- man/git-lfs-migrate.1.html +523 -0
- man/git-lfs-pointer.1 +48 -0
- man/git-lfs-pointer.1.html +119 -0
- man/git-lfs-post-checkout.1 +19 -0
- man/git-lfs-post-checkout.1.html +98 -0
- man/git-lfs-post-commit.1 +22 -0
- man/git-lfs-post-commit.1.html +103 -0
- man/git-lfs-post-merge.1 +19 -0
- man/git-lfs-post-merge.1.html +98 -0
- man/git-lfs-pre-push.1 +47 -0
- man/git-lfs-pre-push.1.html +119 -0
- man/git-lfs-prune.1 +123 -0
- man/git-lfs-prune.1.html +222 -0
- man/git-lfs-pull.1 +47 -0
- 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 |
-
|
3 |
-
|
4 |
-
|
5 |
-
-
|
6 |
-
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.<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.<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://<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 < 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.<name></code> settings group.</p></li>
|
206 |
+
<li><p><code>lfs.customtransfer.<name>.path</code></p>
|
207 |
+
|
208 |
+
<p><code>lfs.customtransfer.<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.<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.<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.<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.<name>.<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.<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.<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.<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><direction> <current>/<total files> <downloaded>/<total> <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 & 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 "locked" 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.<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 <id></code> <code>--id=<id></code></dt><dd><p>Specifies a lock by its ID. Returns a single result.</p></dd>
|
87 |
+
<dt><code>-p <path></code> <code>--path=<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 <num></code> <code>--limit=<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=<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=<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=<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=<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=<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 <message> --message=<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=<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=<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 -> 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><local-ref> SP <local-sha1> SP <remote-ref> SP <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; 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 & 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 & 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 & 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 & EXCLUSION]</p></dd>
|
95 |
+
</dl>
|
96 |
+
|
97 |
+
|
98 |
+
<h2 id="INCLUSION-EXCLUSION">INCLUSION & 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>
|