{ "info": { "author": "Derek Hamilton", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# git-gopher\n\nImproving the Git CLI experience with fzf\n\n![image](https://i.imgur.com/H1R5NxU.gif)\n\n## What is this?\n\nRather than needing to remember the exact name of the branch, tag or remote, or the exact syntax of the different git commands needed, **git-gopher** will provide a list to choose from.\n\nBy using `fzf` for these lists, finding and choosing which item can be done by fuzzy searching the text.\n\nAnd unlike the git GUIs out there, **git-gopher** will say exactly what it's doing by displaying the command it will run before the selection is made.\n\n## What is this not?\n\nAt present, **git-gopher** is not meant as a comprehensive git solution to include everything you'd ever want to do. Rather, it looks to streamline typical use-cases in a friendly, convenient manner, and allow custom additions to suit personal edge-cases.\n\n## Requirements\n\nThe following must be installed\n\n - Python 3.5+\n - [git](https://github.com/git/git)\n - [fzf](https://github.com/junegunn/fzf)\n\n## Installation\n\nMake sure the basic build tools are installed\n\n```\npip3 install setuptools wheel\n```\n\nThen we can install via pip\n\n```\npip3 install git_gopher\n```\n\nAlso, `$PATH` should contain the pip bin directory. That would look something like this in `.bashrc`, `.zshrc` or equivalent\n\n```\nPATH=\"$PATH:~/.local/bin\"\n```\n\n## Updating\n\nUpdating to the latest version is also done via `pip`\n\n```\npip3 install --no-cache-dir --upgrade git-gopher\n```\n\n## Usage\n\n**git-gopher** is run from the command line, same as `git`. The commands will be standard git commands, as if running them directly in the current working directory.\n\n### Menu\n\nThe `ggo` command with no arguments will bring up a fzf list of all the commands that git-gopher provides, as well as additional standard git commands.\n\n![image](https://i.imgur.com/E8RsDeS.png)\n\nCustom commands can be added to menu by creating `~/ggo-options.dat` with the options listed in it, one per line, with the command, shortcut, and description separated by `|`.\n\nNote: Commands cannot contain 2 consecutive spaces (`git log`: good, `git log`: bad). The options are formatted into `columns` and the two spaces are how the command column is delimited.\n\n```\ngit dosomething | shortcut | Description of my command\ngit dosomethingelse | shortcut2 | Description of my other command\n```\n\n### Individual commands\n\nThere are several commands added to make use of `fzf` and make interacting with basic git commands faster and easier.\n\nCommands will list out the available branches or tags in `fzf` as a fuzzy searchable menu rather than requiring that they be provided up front.\n\nRun any command or alias by passing it to the `ggo` command\n\nFor commands that support multiple selections, use `SHIFT+TAB` to mark each option.\n\n```\nggo [command|alias]\n```\n\n| command | alias | description |\n| -------------------------- | ----- | ------------------------------------------------------------------- |\n| menu | | Open menu with these and other commands |\n| checkout-branch | c | Checkout a local branch |\n| checkout-branch-remote | cr | Checkout a local or remote branch |\n| checkout-tag | ct | Checkout a tag |\n| branch-branch | bb | Create and checkout a new branch from another branch |\n| branch-tag | bt | Create and checkout a new branch from a tag |\n| merge-branch | m | Merge a branch into the current branch |\n| merge-tag | mt | Merge a tag into the current branch |\n| merge-squash | ms | Merge and squash a branch into the current branch |\n| add | a | Track and stage selected files |\n| fetch | f | Retrieve repo information from selected remote |\n| track-remote | tr | Change which remote upstream to track |\n| upstream-push | up | Push the current branch to remote, setting the upstream |\n| push-tag | pt | Push a tag to a remote |\n| tag-increment-version | tiv | Create a new tag, incremented by major, minor or patch |\n| delete-branch | d | Delete a branch |\n| delete-branch-force | df | Force delete a branch |\n| delete-tag | dt | Delete a tag locally |\n| delete-tag-remote | dtr | Delete a tag both locally and on remote |\n| reset | rs | Unstage changes after the selected commit |\n| reset-hard | rsh | Revert to the selected commit, discarding changes |\n| cherry-pick | cp | Merge specific commits into the current branch |\n| diff-commits | di | Select two commits and show the changes between them |\n| difftool-commits | dit | Select two commits and show the changes using difftool |\n| difftool-commits-dir-diff | dd | Select two commits and show the changed files by directory |\n| history | h | Show the history of commands run |\n| history-dir | hd | Show the history of commands run in the current working directory |\n| stash-apply | sta | Apply the selected stash to the current branch |\n| stash-pop | stp | Apply the selected stash to the current branch and delete the stash |\n| stash-message | stm | Stash changes with a message |\n| stash-drop | std | Delete a stash", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/derekhamilton/git-gopher", "keywords": "git git-cli git-client linux fzf cli command-line", "license": "", "maintainer": "", "maintainer_email": "", "name": "git-gopher", "package_url": "https://pypi.org/project/git-gopher/", "platform": "", "project_url": "https://pypi.org/project/git-gopher/", "project_urls": { "Homepage": "https://github.com/derekhamilton/git-gopher", "Source": "https://github.com/derekhamilton/git-gopher" }, "release_url": "https://pypi.org/project/git-gopher/0.5.5/", "requires_dist": null, "requires_python": ">=3.5", "summary": "Improving the Git CLI experience with fzf", "version": "0.5.5", "yanked": false, "yanked_reason": null }, "last_serial": 12390634, "releases": { "0.4.1": [ { "comment_text": "", "digests": { "md5": "dc7a3cd7c4939078225ce98e2f1636bf", "sha256": "375936cbc7d4eb349857c0526ce8c50728aecb14b587f0676d5b6b7e8f3550aa" }, "downloads": -1, "filename": "git_gopher-0.4.1.tar.gz", "has_sig": false, "md5_digest": "dc7a3cd7c4939078225ce98e2f1636bf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 17035, "upload_time": "2019-10-27T21:35:03", "upload_time_iso_8601": "2019-10-27T21:35:03.209434Z", "url": "https://files.pythonhosted.org/packages/41/d7/4f3f84cc88397f8899ef9acebffe66fe4ddc29a4f24baca354754cf69407/git_gopher-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.10": [ { "comment_text": "", "digests": { "md5": "30b6e1bdf5c10a685bf515f1c4ba453a", "sha256": "6c611b6b335bcc21f4a2f031ae0b404ae4145e30c5f1a40e25dc078f1005802d" }, "downloads": -1, "filename": "git_gopher-0.4.10.tar.gz", "has_sig": false, "md5_digest": "30b6e1bdf5c10a685bf515f1c4ba453a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19457, "upload_time": "2019-11-09T02:51:19", "upload_time_iso_8601": "2019-11-09T02:51:19.042879Z", "url": "https://files.pythonhosted.org/packages/ab/11/111260d9f2c7bc7ad487f627dc5b82548ee57b325714521ddc7f293959fc/git_gopher-0.4.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.11": [ { "comment_text": "", "digests": { "md5": "b2af4bc1a490e9933d6dda41187f4d23", "sha256": "084dbf1a91adfaceef31110285933ef2eff6927350d597c8286b1782f4e8b0fc" }, "downloads": -1, "filename": "git_gopher-0.4.11.tar.gz", "has_sig": false, "md5_digest": "b2af4bc1a490e9933d6dda41187f4d23", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19540, "upload_time": "2019-11-09T03:17:52", "upload_time_iso_8601": "2019-11-09T03:17:52.252205Z", "url": "https://files.pythonhosted.org/packages/5e/73/83ad8677ac093fdc447c85d8853d288b00feac94038635a0eff8867d0576/git_gopher-0.4.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.12": [ { "comment_text": "", "digests": { "md5": "b31e38b58cb109742678fde25132d60a", "sha256": "af6c67159e8e4baa1c0dd3433c2a6429b4f645505f8f65afe244bafc25bf7721" }, "downloads": -1, "filename": "git_gopher-0.4.12.tar.gz", "has_sig": false, "md5_digest": "b31e38b58cb109742678fde25132d60a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19918, "upload_time": "2019-11-12T05:11:25", "upload_time_iso_8601": "2019-11-12T05:11:25.458228Z", "url": "https://files.pythonhosted.org/packages/84/30/de44be9cffa0f25c69c4eca5a2f45dfafffdf54a605b242b9bbcd1dd69d5/git_gopher-0.4.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "94a658102671fd3aa17f944e8dbb13d2", "sha256": "dd407085ecb98909b5ad24d51449ed7aa7a38c2b42ee646ff69baa4554fed2c9" }, "downloads": -1, "filename": "git_gopher-0.4.3.tar.gz", "has_sig": false, "md5_digest": "94a658102671fd3aa17f944e8dbb13d2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 17015, "upload_time": "2019-10-27T22:28:28", "upload_time_iso_8601": "2019-10-27T22:28:28.143890Z", "url": "https://files.pythonhosted.org/packages/33/c5/722ce79674f7cb42e846512c135c648f00faf3b90bef709457d904a7bb90/git_gopher-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "a3bbd08d860a7444a960d36348988d13", "sha256": "799a666c885878cd11022b7bb8b4df9a35f7399228604edc8798f9dc575a44f2" }, "downloads": -1, "filename": "git_gopher-0.4.4.tar.gz", "has_sig": false, "md5_digest": "a3bbd08d860a7444a960d36348988d13", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 17148, "upload_time": "2019-10-28T13:15:00", "upload_time_iso_8601": "2019-10-28T13:15:00.392008Z", "url": "https://files.pythonhosted.org/packages/98/5b/d38064cf32f243451e220b04b26d2606452cf1a0186c86f7424e85807a10/git_gopher-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "b92e1a389802f31cbbcc169c203c1d6d", "sha256": "b06ebd4a0dc80a3aa355eb3f3929fe9bebf70b816f29173d6f87b40cf7e23f8e" }, "downloads": -1, "filename": "git_gopher-0.4.5.tar.gz", "has_sig": false, "md5_digest": "b92e1a389802f31cbbcc169c203c1d6d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 18050, "upload_time": "2019-10-29T01:22:53", "upload_time_iso_8601": "2019-10-29T01:22:53.415773Z", "url": "https://files.pythonhosted.org/packages/02/82/5c8970e9939abb2b295c799f5de974fd0e51bd8f75be17daa5105aa5e818/git_gopher-0.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "28fbc2035a7fcc9f89e17be337e74d5d", "sha256": "bef02fcfd2ca72df7395d17677eccd6e7e757d9147b4dfc33ac686ad9dadcd95" }, "downloads": -1, "filename": "git_gopher-0.4.6.tar.gz", "has_sig": false, "md5_digest": "28fbc2035a7fcc9f89e17be337e74d5d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 18290, "upload_time": "2019-10-29T01:59:54", "upload_time_iso_8601": "2019-10-29T01:59:54.406801Z", "url": "https://files.pythonhosted.org/packages/b9/81/00bce8dcaba2734f3e58903b1383cf735c53533999efe3078817594045d7/git_gopher-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "6fb94fe251b94cc067db5912989e5288", "sha256": "5907f9d2c718813ffd8468a2974df754ec0a0d63e91ad4d1a407c17d108b6ef0" }, "downloads": -1, "filename": "git_gopher-0.4.7.tar.gz", "has_sig": false, "md5_digest": "6fb94fe251b94cc067db5912989e5288", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 18359, "upload_time": "2019-10-30T16:45:09", "upload_time_iso_8601": "2019-10-30T16:45:09.602243Z", "url": "https://files.pythonhosted.org/packages/e4/0a/2c3a3eac00911a75862e8127eb4531bb26b8d640efadef744cef3444f1d0/git_gopher-0.4.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "6898f5fe585eeef15369ed8d55e9b48e", "sha256": "27bfcc90d9f879ebe194f2331e4384d16546cec2de2fb8a8110b5d240b25f37c" }, "downloads": -1, "filename": "git_gopher-0.4.8.tar.gz", "has_sig": false, "md5_digest": "6898f5fe585eeef15369ed8d55e9b48e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 18576, "upload_time": "2019-10-31T02:36:29", "upload_time_iso_8601": "2019-10-31T02:36:29.353453Z", "url": "https://files.pythonhosted.org/packages/3c/32/0b7e4a53edfe34623413d9401983ac5338c76a9c6266c86793fa291dba8d/git_gopher-0.4.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "85c1d27111a9e284a3e399f44ec1e521", "sha256": "16b6bd05a2d04e70832d15bc2a25ba905cdac94fa44ec3294db065f4673e6091" }, "downloads": -1, "filename": "git_gopher-0.5.0.tar.gz", "has_sig": false, "md5_digest": "85c1d27111a9e284a3e399f44ec1e521", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19941, "upload_time": "2019-11-12T16:26:45", "upload_time_iso_8601": "2019-11-12T16:26:45.159541Z", "url": "https://files.pythonhosted.org/packages/13/59/c10b419c3c1365e4c562055c145faae086625dc24127ffee686bfaf3a76f/git_gopher-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "820efb9220d9bbe45e4936d4407260da", "sha256": "921016c63f1b5c3080d1b8297f16ebeb920900c6bfc32c325eddf10af39f20fc" }, "downloads": -1, "filename": "git_gopher-0.5.1.tar.gz", "has_sig": false, "md5_digest": "820efb9220d9bbe45e4936d4407260da", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20131, "upload_time": "2019-11-13T03:31:56", "upload_time_iso_8601": "2019-11-13T03:31:56.576385Z", "url": "https://files.pythonhosted.org/packages/a3/23/a3316efdb17ee25452ab20eb949c88cd9bd6eba3b7dfe7783d31b3e06cf1/git_gopher-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "eec27c813da032b03fba170d9dc7850e", "sha256": "355041076391dec9d4e28eb0e202c14efa428b6724165cec393762057bf4f634" }, "downloads": -1, "filename": "git_gopher-0.5.2.tar.gz", "has_sig": false, "md5_digest": "eec27c813da032b03fba170d9dc7850e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20315, "upload_time": "2019-11-13T03:58:24", "upload_time_iso_8601": "2019-11-13T03:58:24.333365Z", "url": "https://files.pythonhosted.org/packages/ce/eb/f5e2fc0b4d1299243462d881f8bc82f490ecb689ea727c43a6a32a0047a7/git_gopher-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "fa0c0c1780dc16fea2aed6a8c9295604", "sha256": "d74cffcd73468358fe6048fa90135742a3745baa4161ff6c8d1d4628c764c464" }, "downloads": -1, "filename": "git_gopher-0.5.3.tar.gz", "has_sig": false, "md5_digest": "fa0c0c1780dc16fea2aed6a8c9295604", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20363, "upload_time": "2019-11-19T00:04:29", "upload_time_iso_8601": "2019-11-19T00:04:29.636972Z", "url": "https://files.pythonhosted.org/packages/bf/fc/adb844e1d821e0ba264857a54a0db690c269419650760bc363004692cac6/git_gopher-0.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "0e7713e8c956fcf074dd67904fead42a", "sha256": "6a78e106409b867e098e72459ab0a3eb0daf9ef544476e62d8b19471829779b7" }, "downloads": -1, "filename": "git_gopher-0.5.4.tar.gz", "has_sig": false, "md5_digest": "0e7713e8c956fcf074dd67904fead42a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20406, "upload_time": "2020-02-07T03:06:04", "upload_time_iso_8601": "2020-02-07T03:06:04.248781Z", "url": "https://files.pythonhosted.org/packages/55/a0/d959b4d98e4016b345f787065aae696318acce181604b319935eb83b3d6a/git_gopher-0.5.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "6f1ba4762e802a0042a70b667fe695c2", "sha256": "38d0fabad510369502bed5d9414dfdd3c409358cd46260482030cc8f20b2cbed" }, "downloads": -1, "filename": "git_gopher-0.5.5.tar.gz", "has_sig": false, "md5_digest": "6f1ba4762e802a0042a70b667fe695c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20531, "upload_time": "2020-02-07T03:40:10", "upload_time_iso_8601": "2020-02-07T03:40:10.577835Z", "url": "https://files.pythonhosted.org/packages/11/9d/edcf50b4cb52252c91df6ccdb39e09fb887b1c4e3d7ca4d8c6c3385cff94/git_gopher-0.5.5.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f1ba4762e802a0042a70b667fe695c2", "sha256": "38d0fabad510369502bed5d9414dfdd3c409358cd46260482030cc8f20b2cbed" }, "downloads": -1, "filename": "git_gopher-0.5.5.tar.gz", "has_sig": false, "md5_digest": "6f1ba4762e802a0042a70b667fe695c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20531, "upload_time": "2020-02-07T03:40:10", "upload_time_iso_8601": "2020-02-07T03:40:10.577835Z", "url": "https://files.pythonhosted.org/packages/11/9d/edcf50b4cb52252c91df6ccdb39e09fb887b1c4e3d7ca4d8c6c3385cff94/git_gopher-0.5.5.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }