{"id":13898798,"url":"https://github.com/sodapopcan/vim-twiggy","last_synced_at":"2025-04-09T08:09:02.584Z","repository":{"id":21767262,"uuid":"25089482","full_name":"sodapopcan/vim-twiggy","owner":"sodapopcan","description":"Git branch management for Vim","archived":false,"fork":false,"pushed_at":"2022-01-10T13:18:22.000Z","size":127,"stargazers_count":284,"open_issues_count":14,"forks_count":17,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-01T15:09:54.393Z","etag":null,"topics":["git","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sodapopcan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-11T18:04:47.000Z","updated_at":"2025-03-13T17:59:20.000Z","dependencies_parsed_at":"2022-08-17T20:35:26.568Z","dependency_job_id":null,"html_url":"https://github.com/sodapopcan/vim-twiggy","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodapopcan%2Fvim-twiggy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodapopcan%2Fvim-twiggy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodapopcan%2Fvim-twiggy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodapopcan%2Fvim-twiggy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sodapopcan","download_url":"https://codeload.github.com/sodapopcan/vim-twiggy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999860,"owners_count":21031046,"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":["git","vim"],"created_at":"2024-08-06T18:04:27.764Z","updated_at":"2025-04-09T08:09:02.560Z","avatar_url":"https://github.com/sodapopcan.png","language":"Vim script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"# twiggy.vim\n\nMaintain your bearings while branching with Git\n\n## About\n\nTwiggy is a [fugitive](https://github.com/tpope/vim-fugitive) extension that\nloads, decorates and sorts(!) git branches into an interactive buffer.  It\nprovides basic merge and rebase support, stashing, and some other goodies.\n\n\u003cimg src=\"https://raw.githubusercontent.com/sodapopcan/-/master/twiggy-preview.png\" width=1500\u003e\n\n## Usage\n\nInvoke Twiggy with the `:Twiggy` command.\n\nUse `j` and `k` to jump between branch names and `\u003cC-N\u003e` and `\u003cC-P\u003e` to jump\nbetween groups.  As your cursor moves, information about the branch under the\ncursor will be echoed to the command prompt.\n\nTo checkout a branch, hit `c`.  If the branch is remote and a tracking branch\ndoesn't yet exist for it, one will be created.  `C` will checkout a remote\nbranch in detached HEAD... even if your cursor on the local version!\nYou can also use `o` and `O`.\n`\u003cCR\u003e` (Enter) is an alias for `c`.\n\n#### Sorting\n\nPress `i` to cycle through sorting options (`I` to go backwards) and `a` to\ntoggle the grouping of local branches by slash (`/`).\n\nSorting locals by most-recently-used and __not__ grouping them by slash is super\nuseful!  So is sorting remotes by date.  If you really wanted to, you could\nmake this your default with the following in your vimrc:\n\n```viml\nlet g:twiggy_group_locals_by_slash = 0\nlet g:twiggy_local_branch_sort = 'mru'\nlet g:twiggy_remote_branch_sort = 'date'\n```\n\nIn any event, these are settings you may want to play around with.  Your last\nsettings will be remembered until you close Vim.\n\n### Merging and Rebasing\n\nWith your cursor on a branch, `m` merges it into the current branch.  With your\ncursor on a local branch, `M` will merge its tracked remote into the current\nbranch.  Use `r` and `R` for rebasing.  `f` fetches the branch under the cursor.\n\n`u` aborts a merge or rebase.\n\n### And finally...\n\n`P` to push (also sets the upstream).\n\n`p` to pull.\n\n`dd` to delete a branch.  You will be prompted if it's unmerged.\n\nCreate or checkout a branch with `:Twiggy \u003cbranch-name\u003e`.\n\nType `q` to quit.\n\n`:help twiggy` for plenty more.\n\n### Example fetch and merge workflow\n\nPress `F` on the current branch to fetch from the upstream.  Without moving\nyour cursor, press `C` to checkout the remote branch in detached HEAD.  If\neverything looks good, move your cursor back to the original branch and press\n`c` to checkout, then press `M` to merge the upstream changes.\n\n### Git Log\n\nTwiggy itself is only concerned with branching, but it does have very warm\nfeelings toward the following plugins:\n\n* [gv.vim](https://github.com/junegunn/gv.vim)\n* [gitv](https://github.com/gregsexton/gitv)\n\nInstall one of them and you will get the following mappings:\n\n`gl` show commits for the branch under the cursor\n\n`gL` show range of commits from branch under the cursor to the current one\n\n## Installation\n\nUse vim's built-in package support or your favourite package manager.\n\n[There](https://github.com/junegunn/vim-plug) [sure](https://github.com/Shougo/neobundle.vim)\n[are](https://github.com/VundleVim/Vundle.vim) [a](https://github.com/tpope/vim-pathogen)\n[lot](https://github.com/Shougo/dein.vim)\n[of](https://github.com/k-takata/minpac)\n[options](http://vimhelp.appspot.com/repeat.txt.html#packages)\n[😳](http://www.shrugguy.com/)\n\nMy personal fave is [vim-plug](https://github.com/junegunn/vim-plug):\n```viml\nPlug 'tpope/vim-fugitive'\nPlug 'sodapopcan/vim-twiggy'\n```\n\n## About\n\nIf you like this plugin, please star it and vote for it on\n[vim.org](https://www.vim.org/scripts/script.php?script_id=5643)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsodapopcan%2Fvim-twiggy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsodapopcan%2Fvim-twiggy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsodapopcan%2Fvim-twiggy/lists"}