Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/topics/git/lfs/index.md')
-rw-r--r--doc/topics/git/lfs/index.md161
1 files changed, 3 insertions, 158 deletions
diff --git a/doc/topics/git/lfs/index.md b/doc/topics/git/lfs/index.md
index 23d972e9aa7..fb2aa8df6b7 100644
--- a/doc/topics/git/lfs/index.md
+++ b/doc/topics/git/lfs/index.md
@@ -1,8 +1,7 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments"
-type: reference, howto
+info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
---
# Git Large File Storage (LFS) **(FREE ALL)**
@@ -51,7 +50,7 @@ your operating system. GitLab requires version 1.0.1 or later of the Git LFS cli
- Any Git LFS request asks for HTTPS credentials, so we recommend a good Git
credentials store.
- Git LFS always assumes HTTPS so if you have GitLab server on HTTP you must
- [add the URL to Git configuration manually](#troubleshooting).
+ [add the URL to Git configuration manually](troubleshooting.md#getsockopt-connection-refused).
- [Group wikis](../../../user/project/wiki/group.md) do not support Git LFS.
## How LFS objects affect repository size
@@ -164,158 +163,4 @@ Technical details about how this works can be found in the [development document
- Blog post: [Getting started with Git LFS](https://about.gitlab.com/blog/2017/01/30/getting-started-with-git-lfs-tutorial/)
- [Git LFS developer information](../../../development/lfs.md)
- [GitLab Git Large File Storage (LFS) Administration](../../../administration/lfs/index.md) for self-managed instances
-
-## Troubleshooting
-
-### Encountered `n` files that should have been pointers, but weren't
-
-This error indicates the files are expected to be tracked by LFS, but
-the repository is not tracking them as LFS. This issue can be one
-potential reason for this error:
-[Files not tracked with LFS when uploaded through the web interface](https://gitlab.com/gitlab-org/gitlab/-/issues/326342#note_586820485)
-
-To resolve the problem, migrate the affected file (or files) and push back to the repository:
-
-1. Migrate the file to LFS:
-
- ```shell
- git lfs migrate import --yes --no-rewrite "<your-file>"
- ```
-
-1. Push back to your repository:
-
- ```shell
- git push
- ```
-
-1. Optional. Clean up your `.git` folder:
-
- ```shell
- git reflog expire --expire-unreachable=now --all
- git gc --prune=now
- ```
-
-### error: Repository or object not found
-
-This error can occur for a few reasons, including:
-
-- You don't have permissions to access certain LFS object
-
-Check if you have permissions to push to the project or fetch from the project.
-
-- Project is not allowed to access the LFS object
-
-LFS object you are trying to push to the project or fetch from the project is not
-available to the project anymore. Probably the object was removed from the server.
-
-- Local Git repository is using deprecated LFS API
-
-### Invalid status for `<url>` : 501
-
-Git LFS logs the failures into a log file.
-To view this log file, while in project directory:
-
-```shell
-git lfs logs last
-```
-
-If the status `error 501` is shown, it is because:
-
-- Git LFS is not enabled in project settings. Check your project settings and
- enable Git LFS.
-
-- Git LFS support is not enabled on the GitLab server. Check with your GitLab
- administrator why Git LFS is not enabled on the server. See
- [LFS administration documentation](../../../administration/lfs/index.md) for instructions
- on how to enable LFS support.
-
-- Git LFS client version is not supported by GitLab server. Check your Git LFS
- version with `git lfs version`. Check the Git configuration of the project for traces
- of deprecated API with `git lfs -l`. If `batch = false` is set in the configuration,
- remove the line and try to update your Git LFS client. Only version 1.0.1 and
- newer are supported.
-
-### `getsockopt: connection refused`
-
-If you push an LFS object to a project and receive an error like this,
-the LFS client is trying to reach GitLab through HTTPS. However, your GitLab
-instance is being served on HTTP:
-
-```plaintext
-Post <URL>/info/lfs/objects/batch: dial tcp IP: getsockopt: connection refused
-```
-
-This behavior is caused by Git LFS using HTTPS connections by default when a
-`lfsurl` is not set in the Git configuration.
-
-To prevent this from happening, set the LFS URL in project Git configuration:
-
-```shell
-git config --add lfs.url "http://gitlab.example.com/group/my-sample-project.git/info/lfs"
-```
-
-### Credentials are always required when pushing an object
-
-NOTE:
-With 8.12 GitLab added LFS support to SSH. The Git LFS communication
-still goes over HTTP, but now the SSH client passes the correct credentials
-to the Git LFS client. No action is required by the user.
-
-Git LFS authenticates the user with HTTP Basic Authentication on every push for
-every object, so user HTTPS credentials are required.
-
-By default, Git has support for remembering the credentials for each repository
-you use. For more information, see the [official Git documentation](https://git-scm.com/docs/gitcredentials).
-
-For example, you can tell Git to remember the password for a period of time in
-which you expect to push the objects:
-
-```shell
-git config --global credential.helper 'cache --timeout=3600'
-```
-
-This remembers the credentials for an hour, after which Git operations
-require re-authentication.
-
-If you are using OS X you can use `osxkeychain` to store and encrypt your credentials.
-For Windows, you can use `wincred` or Microsoft's [Git Credential Manager for Windows](https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases).
-
-More details about various methods of storing the user credentials can be found
-on [Git Credential Storage documentation](https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage).
-
-### LFS objects are missing on push
-
-GitLab checks files to detect LFS pointers on push. If LFS pointers are detected, GitLab tries to verify that those files already exist in LFS on GitLab.
-
-Verify that LFS is installed locally and consider a manual push with `git lfs push --all`.
-
-If you are storing LFS files outside of GitLab you can disable LFS on the project by setting `lfs_enabled: false` with the [projects API](../../../api/projects.md#edit-project).
-
-### Hosting LFS objects externally
-
-It is possible to host LFS objects externally by setting a custom LFS URL with `git config -f .lfsconfig lfs.url https://example.com/<project>.git/info/lfs`.
-
-You might choose to do this if you are using an appliance like a Nexus Repository to store LFS data. If you choose to use an external LFS store,
-GitLab can't verify LFS objects. Pushes then fail if you have GitLab LFS support enabled.
-
-To stop push failure, LFS support can be disabled in the [Project settings](../../../user/project/settings/index.md), which also disables GitLab LFS value-adds (Verifying LFS objects, UI integration for LFS).
-
-### I/O timeout when pushing LFS objects
-
-You might get an error that states:
-
-```shell
-LFS: Put "http://your-instance.com/root/project.git/gitlab-lfs/objects/cc29e205d04a4062d0fb131700e8bfc8e54c44d0176a8dca22f40b24ef26d325/15": read tcp your-instance-ip:54544->your-instance-ip:443: i/o timeout
-error: failed to push some refs to 'ssh://your-instance.com:2222/root/project.git'
-```
-
-When network conditions are unstable, the Git LFS client might time out when trying to upload files
-if network conditions are unstable.
-
-The workaround is to set the client activity timeout a higher value.
-
-For example, to set the timeout to 60 seconds:
-
-```shell
-git config lfs.activitytimeout 60
-```
+- [Troubleshooting Git LFS](troubleshooting.md)