Merge pull request #882 from github/readme-updates

big updates to the readme and contributing guide
This commit is contained in:
risk danger olson 2015-12-04 08:22:15 -07:00
commit 9617da0b2c
2 changed files with 115 additions and 99 deletions

@ -7,19 +7,6 @@ This project adheres to the [Open Code of Conduct][code-of-conduct]. By particip
[code-of-conduct]: http://todogroup.org/opencodeofconduct/#Git%20LFS/opensource@github.com
## Issue Labels
The Git LFS teams mark issues and pull requests with the following labels:
* `bug` - An issue describing a bug.
* `enhancement` - An issue for a possible new feature.
* `review` - An issue ready to be reviewed.
* `release` - A checklist issue showing items marked for an upcoming release.
* `roadmap` - A checklist issue with tasks to fulfill something from the
[roadmap](./ROADMAP.md)
* `storage` - Used internally by the core contributors from GitHub. It just
means we're paying extra attention to it.
## Feature Requests
Feature requests are welcome, but will have a much better chance of being
@ -41,6 +28,49 @@ of transferring data.
You can see what the Git LFS team is prioritizing work on in the
[roadmap](./ROADMAP.md).
## Project Management
The Git LFS project is managed completely through this open source project and
its [chat room][chat]. The [roadmap][] shows the high level items that are
prioritized for future work. Suggestions for major features should be submitted
as a pull request that adds a markdown file to `docs/proposals` discussing the
feature. This gives the community time to discuss it before a lot of code has
been written. Roadmap items are linked to one or more Issue task lists ([example][roadmap-items]), with the `roadmap` label, that go into more detail.
[chat]: https://gitter.im/github/git-lfs
[roadmap]: ./ROADMAP.md
[roadmap-items]: https://github.com/github/git-lfs/issues/490
The Git LFS teams mark issues and pull requests with the following labels:
* `bug` - An issue describing a bug.
* `enhancement` - An issue for a possible new feature.
* `review` - A pull request ready to be reviewed.
* `release` - A checklist issue showing items marked for an upcoming release.
* `roadmap` - A checklist issue with tasks to fulfill something from the
[roadmap](./ROADMAP.md)
## Submitting a pull request
0. [Fork][] and clone the repository
0. Configure and install the dependencies: `script/bootstrap`
0. Make sure the tests pass on your machine: `script/test`
0. Create a new branch: `git checkout -b my-branch-name`
0. Make your change, add tests, and make sure the tests still pass
0. Push to your fork and [submit a pull request][pr]
0. Accept the [GitHub CLA][cla]
0. Pat your self on the back and wait for your pull request to be reviewed.
Here are a few things you can do that will increase the likelihood of your pull request being accepted:
* Follow the [style guide][style] where possible.
* Write tests.
* Update documentation as necessary. Commands have [man pages](./docs/man).
* Keep your change as focused as possible. If there are multiple changes you
would like to make that are not dependent upon each other, consider submitting
them as separate pull requests.
* Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
## Building
Git LFS depends on having a working Go 1.5+ environment, with your standard
@ -63,27 +93,6 @@ tests:
$ script/integration # runs the shell tests in ./test
$ script/cibuild # runs everything, with verbose debug output
## Submitting a pull request
0. [Fork][] and clone the repository
0. Configure and install the dependencies: `script/bootstrap`
0. Make sure the tests pass on your machine: `script/test`
0. Create a new branch: `git checkout -b my-branch-name`
0. Make your change, add tests, and make sure the tests still pass
0. Push to your fork and [submit a pull request][pr]
0. Accept the [GitHub CLA][cla]
0. Pat your self on the back and wait for your pull request to be reviewed.
Here are a few things you can do that will increase the likelihood of your pull request being accepted:
- Follow the [style guide][style] where possible.
- Write tests.
- Update documentation as necessary. Commands have [man pages](./docs/man).
- Keep your change as focused as possible. If there are multiple changes you
would like to make that are not dependent upon each other, consider submitting
them as separate pull requests.
- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
## Updating 3rd party packages
0. Update `Nut.toml`.

137
README.md

@ -3,14 +3,9 @@
Git LFS is a command line extension and [specification](docs/spec.md) for
managing large files with Git. The client is written in Go, with pre-compiled
binaries available for Mac, Windows, Linux, and FreeBSD. Check out the
[Git LFS website][page] for a high level overview of features.
See [CONTRIBUTING.md](CONTRIBUTING.md) for info on working on Git LFS and
sending patches. Related projects are listed on the [Implementations wiki
page][impl]. You can chat with the team at: https://gitter.im/github/git-lfs
[Git LFS website][page] for an overview of features.
[page]: https://git-lfs.github.com/
[impl]: https://github.com/github/git-lfs/wiki/Implementations
## Getting Started
@ -22,73 +17,85 @@ preferences.
* [Binary packages are available][rel] for Windows, Mac, Linux, and FreeBSD.
* You can build it with Go 1.5+. See the [Contributing Guide](./CONTRIBUTING.md) for instructions.
Once installed, you can run `git lfs install` to setup the global Git hooks
necessary for Git LFS to work. You can get help on specific commands directly:
[rel]: https://github.com/github/git-lfs/releases
Note: Git LFS requires Git v1.8.2 or higher.
One installed, you need to setup the global Git hooks for Git LFS. This only
needs to be run once per machine.
```bash
$ git lfs install
```
Now, it's time to add some large files to a repository. The first step is to
specify file patterns to store with Git LFS. These file patterns are stored in
`.gitattributes`.
```bash
$ mkdir large-repo
$ cd large-repo
$ git init
# Add all zip files through Git LFS
$ git lfs track "*.zip"
```
Now you're ready to push some commits:
```bash
$ git add my.zip
$ git commit -m "add zip"
```
You can confirm that Git LFS is managing your zip file:
```bash
$ git lfs ls-files
my.zip
```
Once you've made your commits, push your files to the Git remote:
```bash
$ git push origin master
Sending my.zip
LFS: 12.58 MB / 12.58 MB 100.00 %
Counting objects: 2, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 548 bytes | 0 bytes/s, done.
Total 5 (delta 1), reused 0 (delta 0)
To https://github.com/github/git-lfs-test
67fcf6a..47b2002 master -> master
```
## Need Help?
You can get help on specific commands directly:
```bash
$ git lfs help <subcommand>
```
The [official documentation](docs) has command references and specifications for
the tool.
the tool. You can ask questions in the [Git LFS chat room][chat], or [file a new
issue][ish]. Be sure to include details about the problem so we can
troubleshoot it.
Note: Git LFS requires Git v1.8.2 or higher.
1. Include the output of `git lfs env`, which shows how your Git environment
is setup.
2. Include `GIT_TRACE=1` in any bad Git commands to enable debug messages.
3. If the output includes a message like `Errors logged to /path/to/.git/lfs/objects/logs/*.log`,
throw the contents in the issue, or as a link to a Gist or paste site.
[rel]: https://github.com/github/git-lfs/releases
[chat]: https://gitter.im/github/git-lfs
[ish]: https://github.com/github/git-lfs/issues
### Configuration
## Contributing
Git LFS uses `.gitattributes` files to configure which files are managed by Git LFS.
Here is a sample one that saves zips and mp3s:
See [CONTRIBUTING.md](CONTRIBUTING.md) for info on working on Git LFS and
sending patches. Related projects are listed on the [Implementations wiki
page][impl]. You can also join [the project's chat room][chat].
$ cat .gitattributes
*.mp3 filter=lfs -text
*.zip filter=lfs -text
Git LFS can manage `.gitattributes` for you:
$ git lfs track "*.mp3"
Tracking *.mp3
$ git lfs track "*.zip"
Tracking *.zip
$ git lfs track
Listing tracked paths
*.mp3 (.gitattributes)
*.zip (.gitattributes)
$ git lfs untrack "*.zip"
Untracking *.zip
$ git lfs track
Listing tracked paths
*.mp3 (.gitattributes)
### Pushing commits
Once setup, you're ready to push some commits:
$ git add my.zip
$ git commit -m "add zip"
You can confirm that Git LFS is managing your zip file:
$ git lfs ls-files
my.zip
Once you've made your commits, push your files to the Git remote:
$ git push origin master
Sending my.zip
12.58 MB / 12.58 MB 100.00 %
Counting objects: 2, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 548 bytes | 0 bytes/s, done.
Total 5 (delta 1), reused 0 (delta 0)
To https://github.com/github/git-lfs-test
67fcf6a..47b2002 master -> master
See the [Git LFS overview](https://github.com/github/git-lfs/tree/master/docs)
and [man pages](https://github.com/github/git-lfs/tree/master/docs/man).
[impl]: https://github.com/github/git-lfs/wiki/Implementations