Name | shooortcuts JSON |
Version |
1.0.1
JSON |
| download |
home_page | None |
Summary | Simple and helpful cli shortcuts. |
upload_time | 2025-08-03 18:51:44 |
maintainer | None |
docs_url | None |
author | monosolo101 |
requires_python | >=3.6 |
license | None |
keywords |
git
utility
commands
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# shooortcuts
Simple and helpful cli shortcuts.
## 1. Installation
```bash
pip install shooortcuts
```
Or install from source:
```bash
git clone https://github.com/monosolo101/shooortcuts.git
cd shooortcuts
pip install -e .
```
## 2. Commands
### `ass` (Auto Save State)
Creates a temporary commit with an auto-generated version string.
This is extremely helpful when you **make small incremental code changes**.
```bash
$ ass
# Created temporary commit with version message: __init__ # If this is the first commit
# Created temporary commit with version message: a1b2c3d # If a previous commit exists
```
Version string rules:
- If no commits exist: "**\_\_init\_\_**" will be used as the version
- If the last commit is a temp commit made by `ass`: the last version string will be reused
- If the last commit is not a temp commit: the short hash of the last non-temp commit will be used
### `css` (Commit Saved State)
Converts temporary commits into a permanent commit.
Use this to **convert previous temporary commits into a final formal commit with a proper message**.
```bash
$ css "feat: implement new feature"
```
Behavior:
1. If the oldest temporary commit is an "**\_\_init\_\_**" commit:
- Replaces it with the new commit
- Example: `__init__` → `feat: implement new feature`
2. If there is a non-temporary commit before the temporary commits:
- Resets to that commit
- Creates a new commit with all changes
- Example: `normal → temp1 → temp2` becomes `normal → new`
3. If all commits are temporary:
- Creates a new commit replacing all temporary commits
- Example: `temp1 → temp2` becomes `new`
### `dss` (Drop State to Stash)
Discards changes made since the last commit, saving them to the stash.
Useful when recent changes turn out to be a mess.
```bash
$ dss
Saved changes to stash
```
Behavior:
- If there are no changes: prints "No changes to drop"
- Otherwise: saves all changes to the stash with message `"gitCMD: auto stash"`
- Changes can be recovered later using `git stash pop` or `git stash apply`
### `fss` (Fuck off Saved State)
Moves temporary commits to a new branch and resets the main branch.
Use this when everything feels like a mistake and you want to restore the codebase to the last formal commit.
```bash
$ fss
#Saved current changes as temporary commit
#Created new branch: temp/abc123_250325
#Reset main to last non-temp commit
```
Behavior:
1. If there are uncommitted changes:
- Creates a temporary commit with current changes
2. If no commits exist: prints "No commits to fuck off" and stop
3. If all commits are temporary: prints a warning and exits and stop
4. If there are no temporary commits: prints "No temporary commits to fuck off" and stop
5. Otherwise:
- Creates a new branch `temp/$version_YYMMDD_HHMMSS`
- Moves all temporary commits to the new branch
- Resets the main branch to the last non-temporary commit
## 3. Use Case
Typical workflow:
```bash
# Step 0: The repo is in a clean state since the last commit
git log
commit aaa (HEAD -> main)
# Step 1: Make some changes
$ ass
# Saved temporary state
# Created temporary commit with version message: aaa
# Step 2: Make more changes
$ ass
# Saved another state
# Created temporary commit with version message: aaa
# Step 4: AI messed something up
$ dss
# Discard all changes and return to Step 2
# Step 5: Make more changes and get ready for a proper commit
$ css "feat: complete implementation"
# Squash all xxxxx temp commits into a formal commit
# Created commit: feat: complete implementation
# Optional Step 5: Decide the whole thing was a mistake
$ fss
# Discard all changes and return to Step 0
# Reset main to last non-temp commit
```
This allows you to:
1. Save work-in-progress changes frequently
2. Convert them into a clean commit when ready, or discard them entirely if needed
3. Maintain a clean Git history
Raw data
{
"_id": null,
"home_page": null,
"name": "shooortcuts",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "git, utility, commands",
"author": "monosolo101",
"author_email": "monosolo1on1@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/fd/99/b0eefd43289d1479806eaaa1741558ef0e5ab5a1b9f77a685a1e9ec039bb/shooortcuts-1.0.1.tar.gz",
"platform": null,
"description": "# shooortcuts\n\nSimple and helpful cli shortcuts.\n\n## 1. Installation\n\n```bash\npip install shooortcuts\n```\n\nOr install from source:\n\n```bash\ngit clone https://github.com/monosolo101/shooortcuts.git\ncd shooortcuts\npip install -e .\n```\n\n## 2. Commands\n\n### `ass` (Auto Save State)\n\nCreates a temporary commit with an auto-generated version string. \nThis is extremely helpful when you **make small incremental code changes**.\n\n```bash\n$ ass\n# Created temporary commit with version message: __init__ # If this is the first commit\n# Created temporary commit with version message: a1b2c3d # If a previous commit exists\n```\n\nVersion string rules:\n\n- If no commits exist: \"**\\_\\_init\\_\\_**\" will be used as the version\n- If the last commit is a temp commit made by `ass`: the last version string will be reused\n- If the last commit is not a temp commit: the short hash of the last non-temp commit will be used\n\n### `css` (Commit Saved State)\n\nConverts temporary commits into a permanent commit. \nUse this to **convert previous temporary commits into a final formal commit with a proper message**.\n\n```bash\n$ css \"feat: implement new feature\"\n```\n\nBehavior:\n\n1. If the oldest temporary commit is an \"**\\_\\_init\\_\\_**\" commit:\n\n - Replaces it with the new commit\n - Example: `__init__` \u2192 `feat: implement new feature`\n\n2. If there is a non-temporary commit before the temporary commits:\n\n - Resets to that commit\n - Creates a new commit with all changes\n - Example: `normal \u2192 temp1 \u2192 temp2` becomes `normal \u2192 new`\n\n3. If all commits are temporary:\n - Creates a new commit replacing all temporary commits\n - Example: `temp1 \u2192 temp2` becomes `new`\n\n### `dss` (Drop State to Stash)\n\nDiscards changes made since the last commit, saving them to the stash. \nUseful when recent changes turn out to be a mess.\n\n```bash\n$ dss\nSaved changes to stash\n```\n\nBehavior:\n\n- If there are no changes: prints \"No changes to drop\"\n- Otherwise: saves all changes to the stash with message `\"gitCMD: auto stash\"`\n- Changes can be recovered later using `git stash pop` or `git stash apply`\n\n### `fss` (Fuck off Saved State)\n\nMoves temporary commits to a new branch and resets the main branch. \nUse this when everything feels like a mistake and you want to restore the codebase to the last formal commit.\n\n```bash\n$ fss\n#Saved current changes as temporary commit\n#Created new branch: temp/abc123_250325\n#Reset main to last non-temp commit\n```\n\nBehavior:\n\n1. If there are uncommitted changes:\n - Creates a temporary commit with current changes\n2. If no commits exist: prints \"No commits to fuck off\" and stop\n3. If all commits are temporary: prints a warning and exits and stop\n4. If there are no temporary commits: prints \"No temporary commits to fuck off\" and stop\n5. Otherwise:\n - Creates a new branch `temp/$version_YYMMDD_HHMMSS`\n - Moves all temporary commits to the new branch\n - Resets the main branch to the last non-temporary commit\n\n## 3. Use Case\n\nTypical workflow:\n\n```bash\n# Step 0: The repo is in a clean state since the last commit\ngit log\ncommit aaa (HEAD -> main)\n\n# Step 1: Make some changes\n$ ass\n# Saved temporary state\n# Created temporary commit with version message: aaa\n\n# Step 2: Make more changes\n$ ass\n# Saved another state\n# Created temporary commit with version message: aaa\n\n# Step 4: AI messed something up\n$ dss\n# Discard all changes and return to Step 2\n\n# Step 5: Make more changes and get ready for a proper commit\n$ css \"feat: complete implementation\"\n# Squash all xxxxx temp commits into a formal commit\n# Created commit: feat: complete implementation\n\n# Optional Step 5: Decide the whole thing was a mistake\n$ fss\n# Discard all changes and return to Step 0\n# Reset main to last non-temp commit\n```\n\nThis allows you to:\n\n1. Save work-in-progress changes frequently\n2. Convert them into a clean commit when ready, or discard them entirely if needed\n3. Maintain a clean Git history\n",
"bugtrack_url": null,
"license": null,
"summary": "Simple and helpful cli shortcuts.",
"version": "1.0.1",
"project_urls": null,
"split_keywords": [
"git",
" utility",
" commands"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f61f8f4f3bd2f9567cb97c5b4da0cdb39602763a042346f42b4c98c901e26d1e",
"md5": "cce3e976ffb8be6d2d0ededde6c009ef",
"sha256": "a8fba7c2919ddc42018fc52f50d761aea7128c200043eaa76c62ce9ef19b0706"
},
"downloads": -1,
"filename": "shooortcuts-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cce3e976ffb8be6d2d0ededde6c009ef",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 4871,
"upload_time": "2025-08-03T18:51:42",
"upload_time_iso_8601": "2025-08-03T18:51:42.670741Z",
"url": "https://files.pythonhosted.org/packages/f6/1f/8f4f3bd2f9567cb97c5b4da0cdb39602763a042346f42b4c98c901e26d1e/shooortcuts-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fd99b0eefd43289d1479806eaaa1741558ef0e5ab5a1b9f77a685a1e9ec039bb",
"md5": "b406af3bd286be08f1cfeda3decf3feb",
"sha256": "1fc7d88df68011f0cfc5d9368a2bfa2618f05d3c3b5103bb1c80bcee4c3b4fcf"
},
"downloads": -1,
"filename": "shooortcuts-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "b406af3bd286be08f1cfeda3decf3feb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 4446,
"upload_time": "2025-08-03T18:51:44",
"upload_time_iso_8601": "2025-08-03T18:51:44.097207Z",
"url": "https://files.pythonhosted.org/packages/fd/99/b0eefd43289d1479806eaaa1741558ef0e5ab5a1b9f77a685a1e9ec039bb/shooortcuts-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-03 18:51:44",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "shooortcuts"
}