Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jangelsb/git-plus-alfred-workflow

A fully customizable git & zsh interface for Alfred
https://github.com/jangelsb/git-plus-alfred-workflow

alfred alfred-workflow bash custom git yaml zsh

Last synced: 3 days ago
JSON representation

A fully customizable git & zsh interface for Alfred

Awesome Lists containing this project

README

        

# git+ for Alfred: a fully customizable git & zsh interface

`git+` allows you to create personalized commands and menus to fully streamline โœจyourโœจ workflow!

---

For detailed documentation on the commands, see [docs.md](docs.md).

For the official Alfred fourm post, [check here](https://www.alfredforum.com/topic/22463-git-for-alfred-a-fully-customizable-git-zsh-interface/).

---

## ๐Ÿš€ Features

### Fully customizable
![Custom Commands](images/custom_commands.png)

### Supports multiple repos
![Filter Projects](images/filter_projects.png)

### A powerful status menu
![Filter Projects](images/status_menu.png)

### Switch branches
![Checkout Branch](images/checkout_branch.png)

### Create new branches
![Create Branch](images/create_branch.png)

### Ability to view, stage, and unstage hunks
![Create Branch](images/stage_hunk.png)

### And so much more!

* push, push -f
* pull, fetch
* commit
* amend
* stash, pop
* rebase, rebase --onto
* cherry-pick
* history
* stage and unstage files
* copy branch name
* checkout local and remote branch
* checkout tags
* copy diff for tags
* search files in repo
* open repo in Finder, Terminal, Alfred, etc
* `+` anything you want to add ๐Ÿš€ (see [docs.md](docs.md))

---

## ๐Ÿ“– Installation

### Step 1: Set up your `repo list`
```yaml
- title: Repo 1
path: $repo_path1

- title: Repo 2
path: "/path/to/repo2"
config: /path/to/actions.yaml

```
**NOTE**
* `config` is an optional path to an actions.yaml that is only for that repo. The working directory for that path is the workflow's directory.
* If you set a โ€œbash profileโ€, you can use enviroment variables for your paths, e.g, `$REPO_PATH`

### Step 2 (optional)

- Use the default settings

- or **make it your own**
- All commands in this workflow are defined in a YAML config file: [actions.yaml](https://github.com/jangelsb/git-plus-alfred-workflow/blob/main/actions.yaml)
- Copy [actions.yaml](https://github.com/jangelsb/git-plus-alfred-workflow/blob/main/actions.yaml) to your computer
- Update your workflow to use this file
- Customize it ๐Ÿ˜Ž

### Step 3 (optional)
- **Add custom commands:**
- Change the inline config or add another config file in your setup
- Create specific configs for certain repositories using `config` from Step 1

- **Add custom zsh commands:**
- `functions.sh` is implicilty imported before each command that is run. So you can easily offload common commands for better reusability
- You can copy [functions.sh](https://github.com/jangelsb/git-plus-alfred-workflow/blob/main/functions.sh) and tweak it or you can even link to your own file

---

## ๐Ÿ“‚ Config Example

Hereโ€™s a quick example of what a YAML config might look like:

```yaml
- title: fetch
icon: down.small.png
command: |
git fetch -p

- title: create
icon: create.png
command: |
git checkout -b "[input_snake_case]"
```

For more information, see the full documentation: [docs.md](https://github.com/jangelsb/git-plus-alfred-workflow/blob/main/docs.md).

---

## ๐Ÿ› ๏ธ Installation

1. Download [the latest workflow](https://github.com/jangelsb/git-plus-alfred-workflow/releases) and import it into Alfred.
2. Configure the paths in the workflow settings
3. Enjoy & God bless