Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/jangelsb/git-plus-alfred-workflow
- Owner: jangelsb
- License: mit
- Created: 2024-11-03T03:32:48.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-01-29T20:38:55.000Z (6 days ago)
- Last Synced: 2025-01-29T21:28:14.492Z (6 days ago)
- Topics: alfred, alfred-workflow, bash, custom, git, yaml, zsh
- Language: Python
- Homepage: https://www.alfredforum.com/topic/22463-git-for-alfred-a-fully-customizable-git-zsh-interface/
- Size: 3.3 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Funding: .github/FUNDING.yml
- License: LICENSE
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