Merging upstream version 0.11.9.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e4d80afee6
commit
bb3b60775d
11 changed files with 528 additions and 157 deletions
56
README.md
56
README.md
|
@ -14,7 +14,7 @@
|
|||
| | ____ | | | | | ___ |
|
||||
| | \_ ) | | | | | ( ) |
|
||||
| (___) |__) (___ | | | ) ( |
|
||||
(_______)_______/ )_( |/ \| v0.10
|
||||
(_______)_______/ )_( |/ \| v0.11
|
||||
```
|
||||
|
||||
# Gita: a command-line tool to manage multiple git repos
|
||||
|
@ -29,7 +29,14 @@ I also hate to change directories to execute git commands.
|
|||
|
||||

|
||||
|
||||
Here the branch color distinguishes 5 situations between local and remote branches:
|
||||
In the screenshot, the `gita remote nowhub` command translates to `git remote -v`
|
||||
for the `nowhub` repo.
|
||||
To see the pre-defined sub-commands, run `gita -h` or take a look at
|
||||
[cmds.yml](https://github.com/nosarthur/gita/blob/master/gita/cmds.yml).
|
||||
To add your own sub-commands, see the [customization section](#custom).
|
||||
To run arbitrary `git` command, see the [superman mode section](#superman).
|
||||
|
||||
The branch color distinguishes 5 situations between local and remote branches:
|
||||
|
||||
- white: local has no remote
|
||||
- green: local is the same as remote
|
||||
|
@ -50,32 +57,50 @@ The additional status symbols denote
|
|||
The bookkeeping sub-commands are
|
||||
|
||||
- `gita add <repo-path(s)>`: add repo(s) to `gita`
|
||||
- `gita rm <repo-name(s)>`: remove repo(s) from `gita` (won't remove files from disk)
|
||||
- `gita group`: show grouping of the repos
|
||||
- `gita group <repo-name(s)>`: group repos
|
||||
- `gita ungroup <repo-name(s)>`: remove grouping for repos
|
||||
- `gita context`: context sub-command
|
||||
- `gita context`: show current context
|
||||
- `gita context none`: remove context
|
||||
- `gita context <group-name>`: set context to `group-name`, all operations then only apply to repos in this group
|
||||
- `gita color`: color sub-command
|
||||
- `gita color [ll]`: Show available colors and the current coloring scheme
|
||||
- `gita color set <situation> <color>`: Use the specified color for the local-remote situation
|
||||
- `gita group`: group sub-command
|
||||
- `gita group add <repo-name(s)> -n <group-name>`: add repo(s) to a new group or existing group
|
||||
- `gita group [ll]`: display existing groups with repos
|
||||
- `gita group ls`: display existing group names
|
||||
- `gita group rename <group-name> <new-name>`: change group name
|
||||
- `gita group rm <group-name(s)>`: delete group(s)
|
||||
- `gita info`: info sub-command
|
||||
- `gita info [ll]`: display the used and unused information items
|
||||
- `gita info add <info-item>`: enable information item
|
||||
- `gita info rm <info-item>`: disable information item
|
||||
- `gita ll`: display the status of all repos
|
||||
- `gita ll <group-name>`: display the status of repos in a group
|
||||
- `gita ls`: display the names of all repos
|
||||
- `gita ls <repo-name>`: display the absolute path of one repo
|
||||
- `gita rename <repo-name> <new-name>`: rename a repo
|
||||
- `gita info`: display the used and unused information items
|
||||
- `gita rm <repo-name(s)>`: remove repo(s) from `gita` (won't remove files from disk)
|
||||
- `gita -v`: display gita version
|
||||
|
||||
Repo paths are saved in `$XDG_CONFIG_HOME/gita/repo_path` (most likely `~/.config/gita/repo_path`).
|
||||
|
||||
The delegating sub-commands are of two formats
|
||||
|
||||
- `gita <sub-command> [repo-name(s) or group-name(s)]`:
|
||||
optional repo or group input, and no input means all repos.
|
||||
optional repo or group input, and **no input means all repos**.
|
||||
- `gita <sub-command> <repo-name(s) or groups-name(s)>`:
|
||||
required repo name(s) or group name(s) input
|
||||
|
||||
In either case, the `gita` command translates to running `git <sub-command>` for the corresponding repos.
|
||||
By default, only `fetch` and `pull` take optional input.
|
||||
To see the pre-defined sub-commands, run `gita -h` or take a look at
|
||||
[cmds.yml](https://github.com/nosarthur/gita/blob/master/gita/cmds.yml).
|
||||
To add your own sub-commands, see the [customization section](#custom).
|
||||
To run arbitrary `git` command, see the [superman mode section](#superman).
|
||||
|
||||
If more than one repos are specified, the git command will run asynchronously,
|
||||
with the exception of `log`, `difftool` and `mergetool`, which require non-trivial user input.
|
||||
|
||||
Repo paths are saved in `$XDG_CONFIG_HOME/gita/repo_path` (most likely `~/.config/gita/repo_path`).
|
||||
|
||||
## Installation
|
||||
|
||||
To install the latest version, run
|
||||
|
@ -110,7 +135,7 @@ or
|
|||
[.gita-completion.zsh](https://github.com/nosarthur/gita/blob/master/.gita-completion.zsh)
|
||||
and source it in the .rc file.
|
||||
|
||||
## Superman mode
|
||||
## <a name='superman'></a> Superman mode
|
||||
|
||||
The superman mode delegates any git command/alias.
|
||||
Usage:
|
||||
|
@ -126,7 +151,7 @@ For example,
|
|||
- `gita super frontend-repo backend-repo commit -am 'implement a new feature'`
|
||||
executes `git commit -am 'implement a new feature'` for `frontend-repo` and `backend-repo`
|
||||
|
||||
## Customization
|
||||
## <a name='custom'></a> Customization
|
||||
|
||||
Custom delegating sub-commands can be defined in `$XDG_CONFIG_HOME/gita/cmds.yml`
|
||||
(most likely `~/.config/gita/cmds.yml`).
|
||||
|
@ -164,8 +189,11 @@ comaster:
|
|||
|
||||
Another customization is the information items displayed by `gita ll`.
|
||||
The used and unused information items are shown with `gita info` and one can
|
||||
create `$XDG_CONFIG_HOME/gita/info.yml` to customize it. For example, the
|
||||
default information items setting corresponds to
|
||||
create `$XDG_CONFIG_HOME/gita/info.yml` to customize it.
|
||||
(I am thinking of hiding all these details from user at the moment, which means
|
||||
you probably don't need to read the rest of this section.)
|
||||
|
||||
For example, the default information items setting corresponds to
|
||||
|
||||
```yaml
|
||||
- branch
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue