{"id":13393122,"url":"https://github.com/mroth/scmpuff","last_synced_at":"2025-04-05T01:09:39.620Z","repository":{"id":21596201,"uuid":"24916331","full_name":"mroth/scmpuff","owner":"mroth","description":":1234: Numeric file shortcuts for common git commands","archived":false,"fork":false,"pushed_at":"2023-10-24T13:01:12.000Z","size":2629,"stargazers_count":373,"open_issues_count":22,"forks_count":21,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-05-21T12:23:01.246Z","etag":null,"topics":["cli","git","git-addons","handy-shortcuts"],"latest_commit_sha":null,"homepage":"https://mroth.github.io/scmpuff/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mroth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-10-07T23:36:05.000Z","updated_at":"2024-05-30T06:29:08.399Z","dependencies_parsed_at":"2024-05-30T06:44:40.534Z","dependency_job_id":null,"html_url":"https://github.com/mroth/scmpuff","commit_stats":{"total_commits":292,"total_committers":7,"mean_commits":"41.714285714285715","dds":0.08904109589041098,"last_synced_commit":"866e1aae06c35be82fae264ba8e810f86ff13992"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mroth%2Fscmpuff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mroth%2Fscmpuff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mroth%2Fscmpuff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mroth%2Fscmpuff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mroth","download_url":"https://codeload.github.com/mroth/scmpuff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271532,"owners_count":20911587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","git-addons","handy-shortcuts"],"created_at":"2024-07-30T17:00:43.675Z","updated_at":"2025-04-05T01:09:39.593Z","avatar_url":"https://github.com/mroth.png","language":"Go","readme":"# scmpuff :dash:\n\n\u003e Makes working with git from the command line quicker by substituting numeric\nshortcuts for files.\n\n\u003cimg width=568 src=\"http://f.cl.ly/items/2726271z170L2y0K3d0b/scmpuff_screenshot.png\"\u003e\n\n**scmpuff** is a minimalistic reinterpretation of the core functionality of\n[SCM Breeze][scmbreeze], without many of the extras.\n\nIt is focused on simplicity, speed, robustness, and cross-platform support. The\nmajority of the functionality is contained within a compiled binary, and the\nshell integration is under 100 lines of shell script.\n\n**scmpuff** currently functions in `bash` and `zsh` in any *nix-like operating\nsystem. It's written with cross-platform support in mind, so hopefully we'll\nhave it functioning on Windows soon as well.\n\n[scmbreeze]: https://github.com/ndbroadbent/scm_breeze\n\n\n## Installation\n\n[Download] the binary for your platform, and copy it to `/usr/local/bin` or\nsomewhere else in your  default `$PATH`.\n\nAlternately, if you use [homebrew], you can just: `brew install scmpuff`. :beer:\n\n[download]: https://github.com/mroth/scmpuff/releases/latest\n[homebrew]: https://brew.sh\n\n\n## Setup\n\nCurrently scmpuff supports bash, zsh and [fish] for all functionality.\n\nTo initialize shell functions, add the following to your `~/.bash_profile` or\n`~/.zshrc` file:\n\n    eval \"$(scmpuff init -s)\"\n\nor for fish, add the following to your `~/.config/fish/config.fish` file:\n\n    scmpuff init --shell=fish | source\n\nThis will define the scmpuff shell functions as well as some handy shortcuts.\n\n[fish]: https://fishshell.com/\n\n\n## Usage\n\n**Once things are loaded, the most important function you will want to know\nabout is `scmpuff_status`, which is aliased to `gs` for short.**\n\nThis is a replacement for `git status` that is pretty and shows you numbers next\nto each filename, for example:\n\n    $ gs\n    # On branch: master  |  +1  |  [*] =\u003e $e*\n    #\n    ➤ Changes not staged for commit\n    #\n    #       modified:  [1] main.go\n    #\n    ➤ Untracked files\n    #\n    #      untracked:  [2] HELLO.txt\n    #      untracked:  [3] features/shell_aliases.feature\n    #      untracked:  [4] mkramdisk.sh\n    #\n\n**You can now use these numbers in place of filenames when calling normal git\ncommands, e.g. `git add 2 3` or `git checkout 1`.**\n\nYou can also use numeric ranges, e.g. `git reset 2-4`. Ranges can even be mixed\nwith normal numeric operands.\n\nBehind the scenes, scmpuff is assigning filenames to sequential environment\nvariables, e.g. `$e1`, `$e2`, so you can refer to those with other commands too\nif needed.\n\nBy default, scmpuff will also define a few handy shortcuts to save your fingers,\ne.g. `ga`, `gd`, `gco`.  Check your aliases to see what they are.\n\n\n## FAQ\n\n### How do you pronounce it?\n\n:information_desk_person: I like to say \"scum puff.\" But I'm weird.\n\n### How does it compare with SCM Breeze?\n\nThe short version: it does less, but is faster and should be more stable and\nreliable, especially across different platforms.\n\nThe long, detailed version:\nhttps://github.com/mroth/scmpuff/wiki/scmpuff-vs-SCM-Breeze\n\n### Can I disable or change the default git shortcut aliases?\nYou can disable them via passing `--aliases=false` to the `scmpuff init` call\nin your shell initialization.  Then, if you wish to remap them, simple modify\nyour default aliases wherever you normally do, but add aliases mapped to the\nscmpuff shell functions, e.g. `alias gs='scmpuff_status'`.\n\n### I want to use scmpuff in conjunction with [hub][hub] or something else that I've aliased git to, how would I do so?\n\nBy default, scmpuff will attempt to utilize the absolute path of whatever `git`\nit finds in your system PATH, ignoring existing shell aliases.  If you want to\nuse a different binary, set `$SCMPUFF_GIT_CMD` in your shell to the path, for\nexample, `export SCMPUFF_GIT_CMD=/usr/local/bin/hub`.\n\n[hub]: https://github.com/github/hub\n\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmroth%2Fscmpuff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmroth%2Fscmpuff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmroth%2Fscmpuff/lists"}