{"id":13453789,"url":"https://github.com/thoughtbot/gitsh","last_synced_at":"2025-05-15T08:10:13.467Z","repository":{"id":11575310,"uuid":"14063942","full_name":"thoughtbot/gitsh","owner":"thoughtbot","description":"An interactive shell for git","archived":false,"fork":false,"pushed_at":"2024-04-07T06:49:47.000Z","size":6317,"stargazers_count":1958,"open_issues_count":40,"forks_count":102,"subscribers_count":63,"default_branch":"main","last_synced_at":"2025-04-15T05:18:30.903Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://thoughtbot.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thoughtbot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2013-11-02T09:33:38.000Z","updated_at":"2025-03-25T11:23:08.000Z","dependencies_parsed_at":"2024-06-19T02:58:49.531Z","dependency_job_id":null,"html_url":"https://github.com/thoughtbot/gitsh","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fgitsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fgitsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fgitsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fgitsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thoughtbot","download_url":"https://codeload.github.com/thoughtbot/gitsh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254301433,"owners_count":22047904,"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":[],"created_at":"2024-07-31T08:00:47.356Z","updated_at":"2025-05-15T08:10:13.420Z","avatar_url":"https://github.com/thoughtbot.png","language":"Ruby","readme":"# \u003cimg src=\"assets/gitsh-logo.svg\" alt=\"gitsh\" width=\"180\"\u003e\n\nThe `gitsh` program is an interactive shell for git. From within `gitsh` you can\nissue any git command, even using your local aliases and configuration.\n\nFor a quick introduction to `gitsh`, watch [our video on Upcase][]. For further\ndocumentation, you can view the man page by running `man gitsh` in your\nterminal.\n\n[![Build Status](https://travis-ci.org/thoughtbot/gitsh.png?branch=master)](https://travis-ci.org/thoughtbot/gitsh)\n[![Code Climate](https://codeclimate.com/github/thoughtbot/gitsh.png)](https://codeclimate.com/github/thoughtbot/gitsh)\n[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)\n\n[our video on Upcase]: https://upcase.com/videos/gitsh?utm_source=github\u0026utm_medium=open-source\u0026utm_campaign=gitsh\n\n## Why should you use gitsh?\n\n* Git commands tend to come in groups. Avoid typing `git` over and over and over\n  by running them in a dedicated git shell:\n\n  \u003cpre\u003e\u003ccode\u003esh$ gitsh\n  gitsh% status\n  gitsh% add .\n  gitsh% commit -m \"Ship it!\"\n  gitsh% push\n  gitsh% \u003ckbd\u003ectrl\u003c/kbd\u003e-\u003ckbd\u003ed\u003c/kbd\u003e\n  sh$\n  \u003c/code\u003e\u003c/pre\u003e\n\n* Hit \u003ckbd\u003ereturn\u003c/kbd\u003e with no command to run `git status` (change this\n  command by setting `gitsh.defaultCommand` via `git config`; remember it will\n  be prefixed with `git `), saving even more typing:\n\n      gitsh% ⏎\n      # On branch master\n      nothing to commit, working directory clean\n      gitsh%\n\n* Easily execute shell commands:\n\n      gitsh% !echo Hello world\n      Hello world\n      gitsh%\n\n* Combine commands with `\u0026\u0026`, `||`, and `;`:\n\n      gitsh% commit \u0026\u0026 push\n\n* Make temporary modifications to your git configuration with gitsh config\n  variables. These changes only affect git commands issued in this gitsh\n  session and are forgotten when you exit, just like shell environment\n  variables.\n\n      gitsh% :set user.name 'George Brocklehurst and Mike Burns'\n      gitsh% :set user.email support+george+mike@thoughtbot.com\n      gitsh% commit -m 'We are pair programming'\n\n* Access information about your repository with magic variables like\n  `$_rebase_base`, `$_merge_base` and `$_prior`.\n\n      gitsh% rebase master\n      CONFLICT (content): Merge conflict in db/schema.rb\n      gitsh% checkout $_rebase_base -- db/schema\n      gitsh% !rake db:schema:load db:migrate\n\n* Tab completion for git commands, aliases, and branches without modifying your\n  shell settings, and without any extra setup for aliases and third party\n  git commands.\n\n* Information about the state of your git repository in the prompt, without\n  modifying your shell settings. This includes the name of the current HEAD, and\n  a colour and sigil to indicate the status.\n\n* It works with [`hub`][hub] and [`gh`][gh]:\n\n      sh$ gitsh --git $(which gh)\n      gitsh% pull-request\n\n## Installing gitsh\n\n* macOS, via Homebrew:\n\n      brew tap thoughtbot/formulae\n      brew install gitsh\n\n* Arch Linux: https://github.com/thoughtbot/gitsh/blob/master/arch/PKGBUILD\n\n* OpenBSD -current:\n\n      sudo pkg_add gitsh\n\nSee the [installation guide][INSTALL] for install instructions for other\noperating systems.\n\n## Contributing to gitsh\n\nPull requests are very welcome. See the [contributing guide][CONTRIBUTING] for\nmore details.\n\n## Similar projects\n\n* [git-sh][] - A customised bash shell with a Git prompt, aliases, and\n  completion.\n* [gitsh][] - A simple Git shell written in Perl.\n* [repl][] - Wraps any program with subcommands in a REPL.\n\n[hub]: http://hub.github.com/\n[gh]: https://github.com/jingweno/gh\n[INSTALL]: https://github.com/thoughtbot/gitsh/blob/master/INSTALL\n[CONTRIBUTING]: https://github.com/thoughtbot/gitsh/blob/master/CONTRIBUTING.md\n[LICENSE]: https://github.com/thoughtbot/gitsh/blob/master/LICENSE\n[git-sh]: https://github.com/rtomayko/git-sh\n[gitsh]: https://github.com/caglar/gitsh\n[repl]: https://github.com/defunkt/repl\n\n## License\n\ngitsh is Copyright © 2016 Mike Burns, George Brocklehurst, and thoughtbot. It is\nfree software, and may be redistributed under the terms specified in the\n[LICENSE][LICENSE] file.\n\n## About thoughtbot\n\n![thoughtbot](https://thoughtbot.com/brand_assets/93:44.svg)\n\nCreated, maintained and funded by [thoughtbot][team].\nThe names and logos for thoughtbot are trademarks of thoughtbot, inc.\n\n[team]: https://thoughtbot.com?utm_source=github\n\nWe love open source software!\nSee [our other projects][community].\nWe are [available for hire][hire].\n\n[community]: https://thoughtbot.com/tools?utm_source=github\n[hire]: https://thoughtbot.com/hire-us?utm_source=github\n","funding_links":[],"categories":["Ruby","others","Awesome Ruby CLIs"],"sub_categories":["Workflow"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtbot%2Fgitsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthoughtbot%2Fgitsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtbot%2Fgitsh/lists"}