# Git Cli Wrapper for Ducks 🦆
For the orange\yellow bill inclined amongst us
- Tha goal is a git cli wrapper that does 95% of what you need to do but SUPER slick.
- gota be able to yank text from the terminal with EASE
- This is more a tool i want to use personally so dont expect things to work well for you aswell

## Usage
### Status info
`git status` command (default method) but copy pasteable
```sh
> dukit -b
Staged
src/lib.rs
Modified
README.md
src/base_commands.rs
Untracked
hi.txt
```
### Branch info
Notice how easy copy pasting should be
```sh
> dukit -b
Your branch is up to date with 'origin/main'.
feature/git-switch-interactive
main
```
### Fuzzy branch switching
```sh
> dukit -f
#opens fzf
test2
test1
▌ feature/git-switch-interactive
3/3 ─────────────────────────────────────────────────────────────
> {search bar here}
Switched to branch 'feature/git-switch-interactive'
```
### Interactive `git add`
This opens your default editor with files to add
```sh
> dukit -i
# Staged
out.tape
# -------------------------------------
# Unstaged
[ ] README.md
[ ] .gitignore
[x] demo.gif
# Selected files to be staged like so below V
# [x] file.txt
# Lines begining with (#) will be ignored
> running git add demo.gif
demo.gif staged
```
### Interactive `git add` via the keys
allows only upto 26 modified files at once, if more use `duckit -i`
```
Unstaged Staged
a: Cargo.lock
s: Cargo.toml
d: README.md
f: demo.gif
g: out.tape
h: src/duck_commands.rs
> running git add Cargo.lock
Cargo.lock Staged
running git add demo.gif
demo.gif Staged
```
### Better git log output
notice how the output is reversed (most recent at the bottom)
```
c525447
added MIT license
f5f3531
feat: git add via keys
51ea5cb
fix: removed debug printstatement
a72b18b
Merge pull request #2 from DrCheeseFace/feature/rework-gitadd-interactive
d9e5d70
chore: prettier printout for git add keys and interactive
4c503ad
refactor: more like refuctor
```
## Installation
```
cargo install dukit
apt install fzf
```
## Contributing
- If you want to suggest a feature put in an issue with the feature request.
- If you spot a bug (which there probabably are many), put in an issue with how to reproduce it.
- If you want to contribute code, make a pull request. anything short of a war crime will probably be accepted.
## TODO
- [x] status info
- [x] branch and remote info
- [x] git add using editor
- [x] unwrap unwrap unwrap unwrap unwrap unwrap
- [x] fuzzy branch switching?
- [x] nice git log info
- [x] ez copy commit hashes
- [ ] ez rebase
- [ ] ez cherry pick
- [ ] random other git porcelein shizz
