{"id":16806113,"url":"https://github.com/haltcase/fugitive","last_synced_at":"2025-09-04T22:31:31.508Z","repository":{"id":132630335,"uuid":"101132730","full_name":"haltcase/fugitive","owner":"haltcase","description":"Simple command line tool to make git more intuitive, along with useful GitHub addons.","archived":false,"fork":false,"pushed_at":"2024-01-30T17:49:02.000Z","size":173,"stargazers_count":32,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-30T05:16:43.762Z","etag":null,"topics":["changelog","cli","git","github","hacktoberfest","nim","productivity","release","workflow"],"latest_commit_sha":null,"homepage":"","language":"Nim","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/haltcase.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","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":"2017-08-23T03:17:58.000Z","updated_at":"2024-05-29T17:49:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"dcf445f8-eb9b-4e0e-91e5-2b4f476a8c6b","html_url":"https://github.com/haltcase/fugitive","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haltcase%2Ffugitive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haltcase%2Ffugitive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haltcase%2Ffugitive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haltcase%2Ffugitive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haltcase","download_url":"https://codeload.github.com/haltcase/fugitive/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231999615,"owners_count":18458181,"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":["changelog","cli","git","github","hacktoberfest","nim","productivity","release","workflow"],"created_at":"2024-10-13T09:50:09.378Z","updated_at":"2024-12-31T15:04:44.158Z","avatar_url":"https://github.com/haltcase.png","language":"Nim","readme":"# fugitive \u0026middot; [![nimble](https://flat.badgen.net/badge/available%20on/nimble/yellow)](https://nimble.directory/pkg/fugitive) ![license](https://flat.badgen.net/github/license/haltcase/fugitive)\n\n\u003e Simple command line tool to make git more intuitive, along with useful GitHub addons.\n\nfugitive provides new or alternative commands to use with git, and also\nadds a few helpful tools for GitHub repositories.\n\nIt's similar to [`git-extras`][gitextras] but is designed to be more\nportable. `git-extras` is written entirely as a set of shell scripts,\nwhich means platform support outside Unix is at best hit or miss.\n\nOn the other hand, fugitive is written in [Nim][nim] to allow for better\nportability. Other benefits are that Nim is super fast, flexible, and more\nreadable than the often cryptic bash syntax.\n\n[Git Town][gittown] is a project with similar goals written in Go.\n\n## installation\n\nLinux, Windows, and macOS prebuilt binaries are available from [releases][releases].\nDownload the file for your system from the latest release and extract the binary\nwithin to somewhere in your `$PATH`.\n\nAlternatively if you have [Nim][nim] and [Nimble][nimble] installed\n( and `~/.nimble/bin` is in your path ), you can also simply run:\n\n```shell\nnimble install fugitive\n```\n\nThis will make the latest version of `fugitive` available to you anywhere.\nCheck out [Nimble][nimble] if you'd like to know more about package installation.\n\n## usage\n\n```shell\nUsage: fugitive [command] [...args] (...options)\n\nCommands:\n  alias     [name [--remove|-r]] [expansion]\n                                 List, add, or remove git aliases\n  config    [key] [value] [--remove|-r]\n                                 Set, update, or remove fugitive settings\n  changelog [file] [--tag|-t:\u003ctag\u003e] [--last-tag|-l:\u003ctag\u003e] [--overwrite|-o]\n            [--no-anchor] [--no-title] [--no-divider] [--init]\n                                 Write a list of changes since last tag or between two tags\n  clone     \u003c...repos\u003e           Alias for `fugitive mirror`\n  install   [--override|-o] [--force|-y]\n                                 Alias various fugitive commands as git subcommands\n  lock      \u003c...files\u003e           Prevent changes to the specified files from being tracked\n  mirror    \u003c...repos\u003e           Wrapper around `git clone` with various URL shorthands\n  open      [repo]               Open the current or specified repository's homepage\n  profile   [username]           View a summary of a GitHub user profile\n  release   \u003ctag\u003e [--repo|-r:\u003crepo\u003e] [--file|-f:\u003cfilepath\u003e] [--description|-d:\u003cdesc\u003e]\n            [--desc-file|-D:\u003cfilepath\u003e] [--draft|-N] [--prerelease|-p]\n            [--target-commit|-T:\u003ccommitish\u003e]\n                                 Create a GitHub release and/or upload assets to a release\n  scrap     \u003c...files\u003e  [--all|-a]\n                                 Discard local changes to the specified files\n  summary                        Summarize git repository statistics\n  undo      [#] [--hard|-h]      Undo the last commit ( or last # commits )\n  uninstall                      Remove git aliases added by `install`\n  unlock    \u003c...files\u003e           Resume tracking changes to these locked files\n  unstage   \u003c...files\u003e [--all|-a]\n                                 Remove files from the git stage area\n\nOptions:\n  --help, -h       Show this help message\n  --version, -v    Output the fugitive version number\n```\n\nFor help on a specific command, provide the `--help`/`-h` flag _after_\nthat command, ie. `fugitive changelog -h`.\n\n## configuration\n\nfugitive stores a configuration file in your user configuration directory\ncalled `fugitive.ini`. You can manage this file using the `fugitive config`\ncommand.\n\n\u003e TIP: Using the `fugitive config` command with no arguments will print the full\n\u003e filepath to your config file.\n\nYou can, for example, tell fugitive explicitly what to use as your GitHub\nusername when using various shorthand features:\n\n```shell\nfugitive config github.username \u003cname\u003e\n```\n\nHere's the full list of available settings:\n\n| setting name    | type     | default value |\n| --------------- | -------- | ------------- |\n| terminal_colors | `bool`   | on            |\n| github.username | `string` | -             |\n\n\u003e Settings of the type `bool` are retrieved using Nim's [`parseBool`][nimparsebool],\n\u003e so they can be set to any of `y`, `yes`, `true`, `1`, `on` or `n`, `no`, `false`, `0`, `off`.\n\n### username\n\nSome commands support a shorthand for referring to GitHub repositories,\nprovided you've configured your GitHub username or it can be inferred\nfrom your git config.\n\n#### `\u003cname\u003e`\n\nThe simplest shorthand is for referencing one of your own repositories,\nwhich you can do by simply entering its name. For example if you're\n**[@haltcase][haltcase]**, entering `fugitive open cascade` would open\nyour browser to **[`cascade`][cascade]**.\n\n#### `\u003cowner\u003e/\u003cname\u003e`\n\nYou can also use any `\u003cowner\u003e/\u003cproject\u003e` combination you'd like, such as:\n\n- `fugitive open nim-lang/nim`\n- `fugitive mirror soasme/nim-markdown`\n\nBy default fugitive will use your local git username (from\n`git config --global user.name`) for these shorthands but you can explicitly\nset it yourself. You'll also be prompted to provide it if you try to use\nthese shorthands and fugitive isn't able to infer it.\n\n## alias installation\n\nAfter installation, you can make some of fugitive's commands more accessible by\nrunning `fugitive install`, which will attach them to git as subcommands,\nmaking `git undo == fugitive undo`.\n\nCommands installed to git include:\n\n```\nalias\nchangelog\nlock\nmirror\nopen\nprofile\nrelease\nscrap\nsummary\nundo\nunlock\nunstage\n```\n\nExisting aliases are safe as fugitive will not override them unless\nthe `--override` ( or `-o` ) flag is explicitly passed.\n\nIf you want to remove these installed aliases, use `fugitive uninstall`.\nOnly aliases that fugitive installed and match the fugitive command will\nbe removed.\n\n\u003e Note the `mirror` command - git commands can't be overridden, so while\n\u003e `fugitive clone` is possible it can't be aliased as a git subcommand.\n\u003e Therefore `fugitive mirror` is the main command and the one that will\n\u003e be attached to git, while `clone` is just an alias for convenience.\n\n## building\n\nTo build fugitive from source you'll need to install [Nim][nim] and its package\nmanager [Nimble][nimble].\n\n1. Clone the repo: `git clone https://github.com/haltcase/fugitive.git`\n2. Move into the newly cloned directory: `cd fugitive`\n3. Compile a development build for your current platform: `nimble build`\n4. Compile a release build for your current platform: `nimble release`\n\n## contributing\n\nThis project is open to contributions of all kinds! Please check and search\nthe [issues][issues] if you encounter a problem before opening a new one.\n[Pull requests][prinfo] for improvements are also welcome \u0026mdash; see the\nsteps above for [development](#building).\n\n## license\n\nMIT © [Bo Lingen / haltcase](https://github.com/haltcase)\n\n[gitextras]: https://github.com/tj/git-extras\n[gittown]: https://github.com/Originate/git-town\n[nim]: https://nim-lang.org\n[nimble]: https://github.com/nim-lang/nimble\n[issues]: https://github.com/haltcase/fugitive/issues\n[releases]: https://github.com/haltcase/fugitive/releases\n[haltcase]: https://github.com/haltcase\n[cascade]: https://github.com/haltcase/cascade\n[prinfo]: https://help.github.com/articles/creating-a-pull-request/\n[nimparsebool]: https://nim-lang.org/docs/strutils.html#parseBool%2Cstring\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaltcase%2Ffugitive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaltcase%2Ffugitive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaltcase%2Ffugitive/lists"}