init!
Browse files
README.md
DELETED
@@ -1,251 +0,0 @@
|
|
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 |
-
Note that Debian and RPM packages are built for all OSes for amd64 and i386.
|
37 |
-
For arm64, only Debian packages for the latest Debian release are built due to the cost of building in emulation.
|
38 |
-
|
39 |
-
### Installing
|
40 |
-
|
41 |
-
#### From binary
|
42 |
-
|
43 |
-
The [binary packages](https://github.com/git-lfs/git-lfs/releases) include a script which will:
|
44 |
-
|
45 |
-
- Install Git LFS binaries onto the system `$PATH`
|
46 |
-
- Run `git lfs install` to
|
47 |
-
perform required global configuration changes.
|
48 |
-
|
49 |
-
```ShellSession
|
50 |
-
$ ./install.sh
|
51 |
-
```
|
52 |
-
|
53 |
-
#### From source
|
54 |
-
|
55 |
-
- Ensure you have the latest version of Go, GNU make, and a standard Unix-compatible build environment installed.
|
56 |
-
- On Windows, install `goversioninfo` with `go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo`.
|
57 |
-
- Run `make`.
|
58 |
-
- Place the `git-lfs` binary, which can be found in `bin`, on your system’s executable `$PATH` or equivalent.
|
59 |
-
- Git LFS requires global configuration changes once per-machine. This can be done by
|
60 |
-
running:
|
61 |
-
|
62 |
-
```ShellSession
|
63 |
-
$ git lfs install
|
64 |
-
```
|
65 |
-
|
66 |
-
#### Verifying releases
|
67 |
-
|
68 |
-
Releases are signed with the OpenPGP key of one of the core team members. To
|
69 |
-
get these keys, you can run the following command, which will print them to
|
70 |
-
standard output:
|
71 |
-
|
72 |
-
```ShellSession
|
73 |
-
$ curl -L https://api.github.com/repos/git-lfs/git-lfs/tarball/core-gpg-keys | tar -Ozxf -
|
74 |
-
```
|
75 |
-
|
76 |
-
Once you have the keys, you can download the `sha256sums.asc` file and verify
|
77 |
-
the file you want like so:
|
78 |
-
|
79 |
-
```ShellSession
|
80 |
-
$ gpg -d sha256sums.asc | grep git-lfs-linux-amd64-v2.10.0.tar.gz | shasum -a 256 -c
|
81 |
-
```
|
82 |
-
|
83 |
-
## Example Usage
|
84 |
-
|
85 |
-
To begin using Git LFS within a Git repository that is not already configured
|
86 |
-
for Git LFS, you can indicate which files you would like Git LFS to manage.
|
87 |
-
This can be done by running the following _from within a Git repository_:
|
88 |
-
|
89 |
-
```bash
|
90 |
-
$ git lfs track "*.psd"
|
91 |
-
```
|
92 |
-
|
93 |
-
(Where `*.psd` is the pattern of filenames that you wish to track. You can read
|
94 |
-
more about this pattern syntax
|
95 |
-
[here](https://git-scm.com/docs/gitattributes)).
|
96 |
-
|
97 |
-
> *Note:* the quotation marks surrounding the pattern are important to
|
98 |
-
> prevent the glob pattern from being expanded by the shell.
|
99 |
-
|
100 |
-
After any invocation of `git-lfs-track(1)` or `git-lfs-untrack(1)`, you _must
|
101 |
-
commit changes to your `.gitattributes` file_. This can be done by running:
|
102 |
-
|
103 |
-
```bash
|
104 |
-
$ git add .gitattributes
|
105 |
-
$ git commit -m "track *.psd files using Git LFS"
|
106 |
-
```
|
107 |
-
|
108 |
-
You can now interact with your Git repository as usual, and Git LFS will take
|
109 |
-
care of managing your large files. For example, changing a file named `my.psd`
|
110 |
-
(tracked above via `*.psd`):
|
111 |
-
|
112 |
-
```bash
|
113 |
-
$ git add my.psd
|
114 |
-
$ git commit -m "add psd"
|
115 |
-
```
|
116 |
-
|
117 |
-
> _Tip:_ if you have large files already in your repository's history, `git lfs
|
118 |
-
> track` will _not_ track them retroactively. To migrate existing large files
|
119 |
-
> in your history to use Git LFS, use `git lfs migrate`. For example:
|
120 |
-
>
|
121 |
-
> ```
|
122 |
-
> $ git lfs migrate import --include="*.psd" --everything
|
123 |
-
> ```
|
124 |
-
>
|
125 |
-
> For more information, read [`git-lfs-migrate(1)`](https://github.com/git-lfs/git-lfs/blob/main/docs/man/git-lfs-migrate.1.ronn).
|
126 |
-
|
127 |
-
You can confirm that Git LFS is managing your PSD file:
|
128 |
-
|
129 |
-
```bash
|
130 |
-
$ git lfs ls-files
|
131 |
-
3c2f7aedfb * my.psd
|
132 |
-
```
|
133 |
-
|
134 |
-
Once you've made your commits, push your files to the Git remote:
|
135 |
-
|
136 |
-
```bash
|
137 |
-
$ git push origin main
|
138 |
-
Uploading LFS objects: 100% (1/1), 810 B, 1.2 KB/s
|
139 |
-
# ...
|
140 |
-
To https://github.com/git-lfs/git-lfs-test
|
141 |
-
67fcf6a..47b2002 main -> main
|
142 |
-
```
|
143 |
-
|
144 |
-
Note: Git LFS requires at least Git 1.8.2 on Linux or 1.8.5 on macOS.
|
145 |
-
|
146 |
-
### Uninstalling
|
147 |
-
|
148 |
-
If you've decided that Git LFS isn't right for you, you can convert your
|
149 |
-
repository back to a plain Git repository with `git lfs migrate` as well. For
|
150 |
-
example:
|
151 |
-
|
152 |
-
```ShellSession
|
153 |
-
$ git lfs migrate export --include="*.psd" --everything
|
154 |
-
```
|
155 |
-
|
156 |
-
Note that this will rewrite history and change all of the Git object IDs in your
|
157 |
-
repository, just like the import version of this command.
|
158 |
-
|
159 |
-
If there's some reason that things aren't working out for you, please let us
|
160 |
-
know in an issue, and we'll definitely try to help or get it fixed.
|
161 |
-
|
162 |
-
## Limitations
|
163 |
-
|
164 |
-
Git LFS maintains a list of currently known limitations, which you can find and
|
165 |
-
edit [here](https://github.com/git-lfs/git-lfs/wiki/Limitations).
|
166 |
-
|
167 |
-
Git LFS source code utilizes Go modules in its build system, and therefore this
|
168 |
-
project contains a `go.mod` file with a defined Go module path. However, we
|
169 |
-
do not maintain a stable Go language API or ABI, as Git LFS is intended to be
|
170 |
-
used solely as a compiled binary utility. Please do not import the `git-lfs`
|
171 |
-
module into other Go code and do not rely on it as a source code dependency.
|
172 |
-
|
173 |
-
## Need Help?
|
174 |
-
|
175 |
-
You can get help on specific commands directly:
|
176 |
-
|
177 |
-
```bash
|
178 |
-
$ git lfs help <subcommand>
|
179 |
-
```
|
180 |
-
|
181 |
-
The [official documentation](docs) has command references and specifications for
|
182 |
-
the tool. There's also a [FAQ](https://github.com/git-lfs/git-lfs/wiki/FAQ) on
|
183 |
-
the wiki which answers some common questions.
|
184 |
-
|
185 |
-
If you have a question on how to use Git LFS, aren't sure about something, or
|
186 |
-
are looking for input from others on tips about best practices or use cases,
|
187 |
-
feel free to
|
188 |
-
[start a discussion](https://github.com/git-lfs/git-lfs/discussions).
|
189 |
-
|
190 |
-
You can always [open an issue](https://github.com/git-lfs/git-lfs/issues), and
|
191 |
-
one of the Core Team members will respond to you. Please be sure to include:
|
192 |
-
|
193 |
-
1. The output of `git lfs env`, which displays helpful information about your
|
194 |
-
Git repository useful in debugging.
|
195 |
-
2. Any failed commands re-run with `GIT_TRACE=1` in the environment, which
|
196 |
-
displays additional information pertaining to why a command crashed.
|
197 |
-
|
198 |
-
## Contributing
|
199 |
-
|
200 |
-
See [CONTRIBUTING.md](CONTRIBUTING.md) for info on working on Git LFS and
|
201 |
-
sending patches. Related projects are listed on the [Implementations wiki
|
202 |
-
page](https://github.com/git-lfs/git-lfs/wiki/Implementations).
|
203 |
-
|
204 |
-
See also [SECURITY.md](SECURITY.md) for info on how to submit reports
|
205 |
-
of security vulnerabilities.
|
206 |
-
|
207 |
-
## Core Team
|
208 |
-
|
209 |
-
These are the humans that form the Git LFS core team, which runs the project.
|
210 |
-
|
211 |
-
In alphabetical order:
|
212 |
-
|
213 |
-
| [@bk2204][bk2204-user] | [@chrisd8088][chrisd8088-user] | [@larsxschneider][larsxschneider-user] |
|
214 |
-
| :---: | :---: | :---: |
|
215 |
-
| [![][bk2204-img]][bk2204-user] | [![][chrisd8088-img]][chrisd8088-user] | [![][larsxschneider-img]][larsxschneider-user] |
|
216 |
-
| [PGP 0223B187][bk2204-pgp] | [PGP 088335A9][chrisd8088-pgp] | [PGP A5795889][larsxschneider-pgp] |
|
217 |
-
|
218 |
-
[bk2204-img]: https://avatars1.githubusercontent.com/u/497054?s=100&v=4
|
219 |
-
[chrisd8088-img]: https://avatars1.githubusercontent.com/u/28857117?s=100&v=4
|
220 |
-
[larsxschneider-img]: https://avatars1.githubusercontent.com/u/477434?s=100&v=4
|
221 |
-
[bk2204-user]: https://github.com/bk2204
|
222 |
-
[chrisd8088-user]: https://github.com/chrisd8088
|
223 |
-
[larsxschneider-user]: https://github.com/larsxschneider
|
224 |
-
[bk2204-pgp]: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x88ace9b29196305ba9947552f1ba225c0223b187
|
225 |
-
[chrisd8088-pgp]: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x86cd3297749375bcf8206715f54fe648088335a9
|
226 |
-
[larsxschneider-pgp]: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xaa3b3450295830d2de6db90caba67be5a5795889
|
227 |
-
|
228 |
-
### Alumni
|
229 |
-
|
230 |
-
These are the humans that have in the past formed the Git LFS core team, or
|
231 |
-
have otherwise contributed a significant amount to the project. Git LFS would
|
232 |
-
not be possible without them.
|
233 |
-
|
234 |
-
In alphabetical order:
|
235 |
-
|
236 |
-
| [@andyneff][andyneff-user] | [@PastelMobileSuit][PastelMobileSuit-user] | [@rubyist][rubyist-user] | [@sinbad][sinbad-user] | [@technoweenie][technoweenie-user] | [@ttaylorr][ttaylorr-user] |
|
237 |
-
| :---: | :---: | :---: | :---: | :---: | :---: |
|
238 |
-
| [![][andyneff-img]][andyneff-user] | [![][PastelMobileSuit-img]][PastelMobileSuit-user] | [![][rubyist-img]][rubyist-user] | [![][sinbad-img]][sinbad-user] | [![][technoweenie-img]][technoweenie-user] | [![][ttaylorr-img]][ttaylorr-user] |
|
239 |
-
|
240 |
-
[andyneff-img]: https://avatars1.githubusercontent.com/u/7596961?v=3&s=100
|
241 |
-
[PastelMobileSuit-img]: https://avatars2.githubusercontent.com/u/37254014?s=100&v=4
|
242 |
-
[rubyist-img]: https://avatars1.githubusercontent.com/u/143?v=3&s=100
|
243 |
-
[sinbad-img]: https://avatars1.githubusercontent.com/u/142735?v=3&s=100
|
244 |
-
[technoweenie-img]: https://avatars3.githubusercontent.com/u/21?v=3&s=100
|
245 |
-
[ttaylorr-img]: https://avatars2.githubusercontent.com/u/443245?s=100&v=4
|
246 |
-
[andyneff-user]: https://github.com/andyneff
|
247 |
-
[PastelMobileSuit-user]: https://github.com/PastelMobileSuit
|
248 |
-
[sinbad-user]: https://github.com/sinbad
|
249 |
-
[rubyist-user]: https://github.com/rubyist
|
250 |
-
[technoweenie-user]: https://github.com/technoweenie
|
251 |
-
[ttaylorr-user]: https://github.com/ttaylorr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|