6
0
mirror of https://github.com/grdl/git-get.git synced 2026-02-05 02:39:42 +00:00
Files
git-get/README.md
2020-05-18 22:53:06 +02:00

50 lines
1.2 KiB
Markdown

# git-get
`git get` - a better way to clone and manage git repositories.
## Build
How to build with `libgit2` statically linked into a single executable without dependencies:
- Install development packages for libssh2 and openssl:
```
sudo apt install libssh2-1-dev libssl-dev
```
- Inside the `static` folder there's the `git2go` library added as a submodule (pointing to a correct v30 release).
This, in turn, contains `libgit2` submodule. To ensure the submodules are cloned run:
```
git submodule update --init --recursive
```
- Build the static `git2go` library:
```
cd static/git2go && make install-static
```
- Ensure our `git-get` module uses the static `git2go` library instead of the one downloaded by Go modules by having
the following line in `go.mod`:
```
replace github.com/libgit2/git2go/v30 => ./static/git2go
```
- Build, install and test `git-get` with `--tags static` flag, eg:
```
go build -i --tags static
go test --tags static
```
## Features
Show repo status:
- uncommitted changes
- untracked files
- push needed (master, branch1, branch2 etc.)
- pull needed
- upstream missing
- stashes?
- state (merging, rebasing, conflict, cherry picking etc)
- ahead/behind?
- submodules?