{"id":16843722,"url":"https://github.com/thornjad/gitsh","last_synced_at":"2026-04-13T20:02:47.129Z","repository":{"id":114293473,"uuid":"168171120","full_name":"thornjad/gitsh","owner":"thornjad","description":"Mirror of https://gitlab.com/thornjad/gitsh","archived":false,"fork":false,"pushed_at":"2019-04-27T18:14:43.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-24T12:30:39.857Z","etag":null,"topics":["bash","git","shell"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thornjad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2019-01-29T14:46:12.000Z","updated_at":"2019-04-27T18:14:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"7a27142e-9e37-47ef-88a3-9bdb24048a13","html_url":"https://github.com/thornjad/gitsh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thornjad%2Fgitsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thornjad%2Fgitsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thornjad%2Fgitsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thornjad%2Fgitsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thornjad","download_url":"https://codeload.github.com/thornjad/gitsh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244166639,"owners_count":20409177,"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":["bash","git","shell"],"created_at":"2024-10-13T12:53:16.616Z","updated_at":"2026-04-13T20:02:47.122Z","avatar_url":"https://github.com/thornjad.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitsh\n\nA customized bash shell for working closely with git\n\nThe `gitsh` command starts an interactive bash shell tweaked for heavy git\ninteraction:\n\n  * All git commands available at top-level\n    (`checkout master` = `git checkout master`)\n  * All git aliases defined in the `[alias]` section\n    of `~/.gitconfig` available at top-level.\n  * Custom prompt with current branch, repository, and\n    work tree dirty indicator.\n  * Customizable via `~/.gitshrc` config files;\n    for creating aliases, changing the prompt, etc.\n  * Runs on top of normal bash (`~/.bashrc`) and\n    readline (`~/.inputrc`) configurations.\n\n## Basic Usage\n\nTypical usage is to change into a git working copy and then start the shell:\n\n    $ cd mygreatrepo\n    $ gitsh\n    ▹ help\n\nCore git commands and git command aliases defined in `~/.gitconfig` can be\nused as top-level commands:\n\n    ▹ checkout -b new\n    ▹ log -p\n    ▹ rebase -i HEAD~10\n\nIt's really just a normal bash shell, though, so all commands on `PATH` and any\naliases defined in `~/.bashrc` are also available:\n\n    ▹ ls -l\n    ▹ vim somefile\n\n_IMPORTANT: `rm`, `mv`, and `diff` are aliased to their git counterparts. To use\nsystem versions, run `command(1)` (e.g., `command rm`) or qualify the command\n(e.g. `/bin/rm`)._\n\n## Prompt\n\nThe default prompt shows username, hostname, SSH status, then the relative path\nto the current working directory from the root of the work tree, then the branch\nname, as well as status indicators.\n\nThe gitsh prompt includes ANSI colors when the git `color.ui` option is\nenabled. To enable gitsh's prompt colors explicitly, set the `color.sh` config\nvalue to `auto`:\n\n    $ git config --global color.sh auto\n\nCustomize prompt colors by setting the `color.sh.branch`, `color.sh.workdir`,\nand `color.sh.dirty` git config values:\n\n    $ git config --global color.sh.branch 'yellow reverse'\n    $ git config --global color.sh.workdir 'blue bold'\n    $ git config --global color.sh.dirty 'red'\n    $ git config --global color.sh.dirty-stash 'red'\n    $ git config --global color.sh.repo-state 'red'\n\nSee [colors in git](http://scie.nti.st/2007/5/2/colors-in-git) for information.\n\n## Customizing\n\nMost `gitsh` behavior can be configured by editing the user or system gitconfig\nfiles (`~/.gitconfig`) either by hand or using `git-config(1)`. The `[alias]`\nsection is used to create basic command aliases.\n\nThe `~/.bashrc` file is sourced before `~/.gitshrc`. Any bash customizations\ndefined there and not explicitly overridden by `gitsh` are also available.\n\n## License\n\nCopyright 2018-2019 [Jade Michael Thornton](https://jmthornton.net)\u003cbr /\u003e\nCopyright 2008 [Ryan Tomayko](http://tomayko.com/) and [Aristotle\nPagaltzis](http://plasmasturm.org/)\n\nThis program is free software; you can redistribute it and/or modify it under\nthe terms of the GNU General Public License, version 2, as published by the Free\nSoftware Foundation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthornjad%2Fgitsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthornjad%2Fgitsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthornjad%2Fgitsh/lists"}