mirror of
https://github.com/grdl/git-get.git
synced 2026-02-10 12:34:23 +00:00
Add table of contents to readme
This commit is contained in:
38
README.md
38
README.md
@@ -6,13 +6,25 @@
|
|||||||
|
|
||||||
`git-get` is a better way to clone, organize and manage multiple git repositories.
|
`git-get` is a better way to clone, organize and manage multiple git repositories.
|
||||||
|
|
||||||
It gives you two new git commands:
|
* [Description](#git-get)
|
||||||
|
* [Installation](#installation)
|
||||||
|
* [Usage](#usage)
|
||||||
|
* [git get](#git-get-1)
|
||||||
|
* [Dump file](#dump-file)
|
||||||
|
* [git-list](#git-list)
|
||||||
|
* [Configuration](#configuration)
|
||||||
|
* [Env variables](#env-variables)
|
||||||
|
* [.gitconfig file](#.gitconfig-file)
|
||||||
|
* [Contributing](#contributing)
|
||||||
|
* [Acknowledgments](#acknowledgments)
|
||||||
|
|
||||||
|
|
||||||
|
`git-get` gives you two new git commands:
|
||||||
- **`git get`** clones repositories into an automatically created directory tree based on repo's URL (like golang's [`go get`](https://golang.org/cmd/go/)). It's dotfiles friendly, meaning you can also give it a file with a list of repositories and it will clone all of them.
|
- **`git get`** clones repositories into an automatically created directory tree based on repo's URL (like golang's [`go get`](https://golang.org/cmd/go/)). It's dotfiles friendly, meaning you can also give it a file with a list of repositories and it will clone all of them.
|
||||||
- **`git list`** shows status of all your git repositories and their branches.
|
- **`git list`** shows status of all your git repositories and their branches.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Use Homebrew:
|
Use Homebrew:
|
||||||
@@ -60,10 +72,10 @@ For example `git get grdl/git-get` will clone `https://github.com/grdl/git-get.g
|
|||||||
|
|
||||||
Dump file format is simply:
|
Dump file format is simply:
|
||||||
- Each repo URL on a separate line.
|
- Each repo URL on a separate line.
|
||||||
- Each URL can have a suffix with a branch or tag name to check out after cloning. If that suffix is missing, `master` will be used.
|
- Each URL can have a suffix with a branch or tag name to check out after cloning. Without that suffix, `master` is used.
|
||||||
- Tag name should be prefixed with `refs/tags/`.
|
- Tag name should be prefixed with `refs/tags/`.
|
||||||
|
|
||||||
Example dump file contents:
|
Example dump file content:
|
||||||
```
|
```
|
||||||
https://github.com/grdl/git-get refs/tags/v1.0.0
|
https://github.com/grdl/git-get refs/tags/v1.0.0
|
||||||
git@github.com:grdl/another-repository.git
|
git@github.com:grdl/another-repository.git
|
||||||
@@ -91,7 +103,7 @@ Flags:
|
|||||||
|
|
||||||
`git list` provides different ways to view the list of the repositories and their statuses.
|
`git list` provides different ways to view the list of the repositories and their statuses.
|
||||||
|
|
||||||
- **tree** (default) - rendered as a directory tree.
|
- **tree** (default) - repos rendered as a directory tree.
|
||||||
```
|
```
|
||||||
❯ git list
|
❯ git list
|
||||||
/home/grdl/repositories
|
/home/grdl/repositories
|
||||||
@@ -120,7 +132,7 @@ https://github.com/grdl/homebrew-tap master
|
|||||||
https://github.com/grdl/testsite master
|
https://github.com/grdl/testsite master
|
||||||
```
|
```
|
||||||
|
|
||||||
- **smart** (experimental) - similar to the tree view but saves space by automatically folding paths with only a single child.
|
- **smart** (experimental) - similar to the tree view but saves space by automatically folding paths with only a single child. In theory it's supposed to be more readable but fails to prove it in practice so far :wink:
|
||||||
```
|
```
|
||||||
❯ git list -o smart
|
❯ git list -o smart
|
||||||
/home/grdl/repositories
|
/home/grdl/repositories
|
||||||
@@ -142,25 +154,21 @@ The order of precedence for configuration is as follows:
|
|||||||
- .gitconfig entry
|
- .gitconfig entry
|
||||||
- default value
|
- default value
|
||||||
|
|
||||||
> **IMPORTANT!**
|
> :warning: **WARNING!** :warning:
|
||||||
>
|
>
|
||||||
> When changing repos root path using .gitconfig or an env variable use a full, absolute path. For example, use `/home/greg/my_repos` instead of `~/my_repos` or `$HOME/my_repos`. This is becase `git-get` can't expand shell variables.
|
> When changing repos root path using .gitconfig or env variables, use a full path. For example, use `/home/greg/my_repos` instead of `~/my_repos` or `$HOME/my_repos`. This is becase `git-get` can't expand shell variables.
|
||||||
|
|
||||||
|
|
||||||
### Env variables
|
### Env variables
|
||||||
|
|
||||||
Use the `GITGET_` prefix and the uppercase flag name to set the configuration using env variables.
|
Use the `GITGET_` prefix and the uppercase flag name to set the configuration using env variables. For example, to use a different repos root path run:
|
||||||
|
|
||||||
For example, to use a different repos root path run:
|
|
||||||
```
|
```
|
||||||
export GITGET_ROOT=/path/to/my/repos
|
export GITGET_ROOT=/path/to/my/repos
|
||||||
```
|
```
|
||||||
|
|
||||||
### .gitconfig file
|
### .gitconfig file
|
||||||
|
|
||||||
You can define a `[gitget]` section inside your `.gitconfig` file and set the configuration flags there. A common and recommended pattern is to set `root` and `host` variables there if you don't want to use the defaults.
|
You can define a `[gitget]` section inside your `.gitconfig` file and set the configuration flags there. A common and recommended pattern is to set `root` and `host` variables there if you don't want to use the defaults. Here's an example of a working snippet from `.gitconfig` file:
|
||||||
|
|
||||||
Here's an example of a working snippet from `.gitconfig` file:
|
|
||||||
```
|
```
|
||||||
[gitget]
|
[gitget]
|
||||||
root = /path/to/my/repos
|
root = /path/to/my/repos
|
||||||
@@ -168,7 +176,7 @@ Here's an example of a working snippet from `.gitconfig` file:
|
|||||||
```
|
```
|
||||||
|
|
||||||
`git-get` looks for the `.gitconfig` file in the following locations:
|
`git-get` looks for the `.gitconfig` file in the following locations:
|
||||||
- `XDG_CONFIG_HOME/git/config`
|
- `$XDG_CONFIG_HOME/git/config`
|
||||||
- `~/.gitconfig`
|
- `~/.gitconfig`
|
||||||
- `~/.config/git/config`
|
- `~/.config/git/config`
|
||||||
- `/etc/gitconfig`
|
- `/etc/gitconfig`
|
||||||
|
|||||||
Reference in New Issue
Block a user