{"id":13649240,"url":"https://github.com/kahole/edamagit","last_synced_at":"2025-05-14T15:06:53.758Z","repository":{"id":41518649,"uuid":"225475618","full_name":"kahole/edamagit","owner":"kahole","description":"Magit for VSCode","archived":false,"fork":false,"pushed_at":"2025-02-10T17:25:35.000Z","size":53841,"stargazers_count":1243,"open_issues_count":94,"forks_count":77,"subscribers_count":18,"default_branch":"develop","last_synced_at":"2025-04-12T02:56:13.259Z","etag":null,"topics":["git","magit","source-control","visual-studio-code-extension","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=kahole.magit","language":"TypeScript","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/kahole.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["kahole"],"custom":["https://www.buymeacoffee.com/kahole"]}},"created_at":"2019-12-02T21:50:58.000Z","updated_at":"2025-04-01T06:10:58.000Z","dependencies_parsed_at":"2024-03-25T18:41:50.027Z","dependency_job_id":"5a7f7480-7c8c-4f39-9c1b-3480e1319d21","html_url":"https://github.com/kahole/edamagit","commit_stats":{"total_commits":677,"total_committers":43,"mean_commits":"15.744186046511627","dds":0.1595273264401772,"last_synced_commit":"f25a8283661d944be7c3c43c77532c235ae97e4b"},"previous_names":[],"tags_count":116,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kahole%2Fedamagit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kahole%2Fedamagit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kahole%2Fedamagit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kahole%2Fedamagit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kahole","download_url":"https://codeload.github.com/kahole/edamagit/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254169258,"owners_count":22026209,"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","magit","source-control","visual-studio-code-extension","vscode","vscode-extension"],"created_at":"2024-08-02T01:04:52.410Z","updated_at":"2025-05-14T15:06:53.688Z","avatar_url":"https://github.com/kahole.png","language":"TypeScript","funding_links":["https://github.com/sponsors/kahole","https://www.buymeacoffee.com/kahole"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=kahole.magit\"\u003e\n    \u003cimg src=\"https://github.com/kahole/edamagit/raw/develop/images/edamagit_logo.png\" alt=\"edamagit\" width=\"120\" /\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  edamagit\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eMagit for VSCode, inspired by the awesome original \u003ca href=\"https://magit.vc/\" target=\"_blank\"\u003eMagit\u003c/a\u003e.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=kahole.magit\"\u003e\n      \u003cimg src=\"https://img.shields.io/visual-studio-marketplace/v/kahole.magit?color=green\u0026label=VS%20Marketplace\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://open-vsx.org/extension/kahole/magit\"\u003e\n    \u003cimg src=\"https://img.shields.io/open-vsx/v/kahole/magit?color=blue\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/kahole\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" height=\"28\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/sponsors/kahole\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026color=pink\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\n  \u003ca href=\"https://kahole.github.io/hole.dev/articles/edamagit-introduction/\"\u003eTutorial\u003c/a\u003e •\n  \u003ca href=\"#settings\"\u003eSettings\u003c/a\u003e •\n  \u003ca href=\"#vim-support-vscodevim\"\u003eVim Bindings\u003c/a\u003e •\n  \u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\n\u003c/h3\u003e\n\n---\n\n## Keyboard driven Git interface\n![Usage](https://github.com/kahole/edamagit/raw/5ebf38107c6130cc16a23f18d84aeecc21f09fe8/magit_commit_demo.gif)\n(Theme: [Dracula](https://draculatheme.com/))\n\n## Usage\n\n| VSCode Command                   | Default shortcut |\n|----------------------------------|------------------|\n| Magit Status                     | `alt+x g`        |\n| Magit File Popup                 | `alt+x alt+g`    |\n| Magit Dispatch                   | `alt+x ctrl+g`   |\n| Magit Help (when in status view) | `?`              |\n\n`\u003e Magit ` in VSCode Command palette will show you all available Magit actions from where you are.\n\n\nKeybindings inside edamagit\n```\nPopup and dwim commands\n  A Cherry-pick      b Branch           c Commit\n  d Diff             f Fetch            F Pull\n  I Ignore           l Log              m Merge\n  M Remote           P Push             r Rebase\n  t Tag              V Revert           X Reset\n  y Show Refs        z Stash            shift+1 Run\n  shift+5 Worktree   o Submodules       shift+4 Process Log\n\nApplying changes\n  a Apply          s Stage          u Unstage\n  v Reverse        S Stage all      U Unstage all\n  k Discard\n\nEssential commands\n  g        refresh current buffer\n  TAB      toggle section at point\n  RET      visit thing at point\n  shift+4  show git process view\n  q        exit / close magit view\n\n  ctrl+j Move cursor to next entity\n  ctrl+k Move cursor to previous entity\n```\n\n## [[ See also the edamagit tutorial ]](https://kahole.github.io/hole.dev/articles/edamagit-introduction/)\n---\n\n\n## Settings\n\n- `Forge-enabled`: Enable Forge functionality (show pull requests, issues, etc from e.g. Github)\n- `Display-buffer-function`: Choose which side for magit windows to open on.\n- `Hide-status-sections`: Hide listed sections from status view.\n- `Quick-switch-enabled`: Automatically confirm switch menu after enabling a switch (e.g. --force)\n\n## Monorepo support\n\nWhen used in a monorepo, you need to make sure that the subdirectory can detect the parent's `.git`.\n\n```json\n{\n  \"git.openRepositoryInParentFolders\": \"always\",\n}\n```\n\n## Vim support (VSCodeVim)\n\nAll edamagit keybindings are customizable using VSCode's built-in `keybindings.json`.\n\nBelow are bindings providing evil-magit / spacemacs like keybindings.\n\nThe negative bindings, e.g. `-magit.discard-at-point` for key `k`,\nremove the default edamagit bindings and the collisions with the Vim extension.\n\n[Open your `keybindings.json`][kse] and paste the following JSON snippet.\n\n[kse]: https://code.visualstudio.com/docs/getstarted/keybindings#_advanced-customization\n\n\u003cdetails\u003e\n  \u003csummary\u003eBindings - keybindings.json\u003c/summary\u003e\n  \n  ```json\n    {\n       \"key\": \"g g\",\n       \"command\": \"cursorTop\",\n       \"when\": \"editorTextFocus \u0026\u0026 editorLangId == 'magit' \u0026\u0026 vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/\" \n    },\n    { \"key\": \"g r\",\n       \"command\": \"magit.refresh\",\n       \"when\": \"editorTextFocus \u0026\u0026 editorLangId == 'magit' \u0026\u0026 vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/\" \n    },\n    {\n      \"key\": \"tab\",\n      \"command\": \"extension.vim_tab\",\n      \"when\": \"editorTextFocus \u0026\u0026 vim.active \u0026\u0026 !inDebugRepl \u0026\u0026 vim.mode != 'Insert' \u0026\u0026 editorLangId != 'magit'\"\n    },\n    {\n      \"key\": \"tab\",\n      \"command\": \"-extension.vim_tab\"\n    },\n    {\n      \"key\": \"x\",\n      \"command\": \"magit.discard-at-point\",\n      \"when\": \"editorTextFocus \u0026\u0026 editorLangId == 'magit' \u0026\u0026 vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/\"\n    },\n    {\n      \"key\": \"k\",\n      \"command\": \"-magit.discard-at-point\"\n    },\n    {\n      \"key\": \"-\",\n      \"command\": \"magit.reverse-at-point\",\n      \"when\": \"editorTextFocus \u0026\u0026 editorLangId == 'magit' \u0026\u0026 vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/\"\n    },\n    {\n      \"key\": \"v\",\n      \"command\": \"-magit.reverse-at-point\"\n    },\n    {\n      \"key\": \"shift+-\",\n      \"command\": \"magit.reverting\",\n      \"when\": \"editorTextFocus \u0026\u0026 editorLangId == 'magit' \u0026\u0026 vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/\"\n    },\n    {\n      \"key\": \"shift+v\",\n      \"command\": \"-magit.reverting\"\n    },\n    {\n      \"key\": \"shift+o\",\n      \"command\": \"magit.resetting\",\n      \"when\": \"editorTextFocus \u0026\u0026 editorLangId == 'magit' \u0026\u0026 vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/\"\n    },\n    {\n      \"key\": \"shift+x\",\n      \"command\": \"-magit.resetting\"\n    },\n    {\n      \"key\": \"x\",\n      \"command\": \"-magit.reset-mixed\"\n    },\n    {\n      \"key\": \"ctrl+u x\",\n      \"command\": \"-magit.reset-hard\"\n    }\n  ```\n\u003c/details\u003e\n\n## Roadmap\n\n_Feature requests as well as issues are welcome_\n\n### Interface\n  - More interactivity in second-tier views (commit view, stash view, etc)\n  - Config menus\n\n### Missing Git/Magit features\n  - More diffing features\n  - More logging features (https://github.com/kahole/edamagit/pull/40)\n  - Bisecting\n  - Patches\n  - Subtrees\n\n### Missing Forge features\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkahole%2Fedamagit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkahole%2Fedamagit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkahole%2Fedamagit/lists"}