ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

GitSavvy

timbrel 全部

Sublime Text 的 Git 和 GitHub 集成

详细信息

  • 2.45.0
    2.39.1
    2.39.0
  • github.com
  • github.com
  • 2个月前
  • 2小时前
  • 9年前

安装

  • 总计 80K
  • Win 36K
  • Mac 26K
  • Linux 18K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日 6月22日
Windows 4 5 0 5 3 3 5 6 5 3 2 2 4 2 7 7 0 1 1 3 1 8 4 0 6 4 8 4 2 5 2 4 3 6 4 9 3 2 7 8 4 5 1 3 5 2
Mac 4 4 0 0 3 1 4 1 1 0 5 6 6 5 7 7 1 2 4 8 2 3 2 2 3 2 4 3 3 4 3 2 4 2 1 5 2 2 3 6 2 5 4 1 1 6
Linux 1 5 3 4 1 2 4 3 1 4 1 2 2 1 3 0 0 0 2 6 4 3 7 1 1 3 1 4 5 0 3 0 1 0 4 6 3 1 4 6 3 2 2 1 5 2

说明文件

源代码
raw.githubusercontent.com

GitSavvy

tests License: MIT

GitSavvy 是一个强大而成熟的 Sublime Text 插件,可以直接在文本编辑器中提供 Git 的大部分功能。

它提供了在编辑器中自然而然出现的功能。例如,您可以轻松地交互式地提交或放弃每个块、每行、每文件的变化。在缓冲区中搜索您刚刚选择的具体内容。在文件提交和修订历史中导航,编写清晰且长(!)的提交消息(因为谁愿意在单独的程序中使用一个笨拙的输入框来做这件事呢?)。GitSavvy 简化了标准变基操作,例如重写提交消息,并使复杂的变基技术,如将特性分支拆分为两个,变得可管理。

然而,GitSavvy 丰富了您的 Git 体验。它并不取代它。

安装

简单

  1. 如果您还没有,请安装 Sublime Text Package Control 插件。
  2. 打开命令面板,并开始输入 Package Control: Install Package
  3. 输入 GitSavvy

不那么简单

如果您想更多地控制下载内容,或者您想向 GitSavvy 提交更改(👈👌),请在 Packages 文件夹中直接克隆存储库并重新启动编辑器。之后,您仍然需要运行 Package Control: Satisfy Dependencies

注意: GitSavvy 需要 Git 版本 2.18.0 或更高版本。然而,强烈建议您使用更新的 Git 版本,因为 GitSavvy 中的一些高级变基功能需要至少版本 2.38.0。升级到 Git 的最新版本将确保您可以使用 GitSavvy 中所有功能及其改进。

注意: GitSavvy 不支持 Sublime Text 2。如果您使用 Sublime Text 3,可以通过检出 st3-2.39.1 标签访问最后一个支持版本。也就是说,GitSavvy 的当前主线只支持 build 版本 4000 以上的 Sublime Text。为了获得最佳体验,请使用最新的 Sublime Text dev 构建。或者不,我的意思是它也可能崩溃,我在这里推荐什么。

TLDR; 即快速开始

当您首次安装 GitSavvy 时,您可能不会注意到 Sublime Text 界面有任何立即的变化。除了您可能在状态栏中看到检出的分支名称和脏状态显示之外。(如果您想改变的话。)需要注意的是,GitSavvy 实际上向 Sublime 的命令板添加了许多命令,您可以通过按 Windows 上的 ctrl+shift+p 或 macOS 上的 cmd+shift+p 来访问它们。这些命令通常以 git: 为前缀,而所有 GitHub 功能都以前缀 github:

GitSavvy 还提供专用视图。要开始使用 GitSavvy,首先熟悉 git: statusgit: Repo History 视图是个好主意。这些视图是进入 GitSavvy 世界的好起点,并且在深入了解其其他功能之前,将帮助您熟悉插件。(实际上,我在头一年或两年没有越过 git: status 视图多远,但是嘿,GitSavvy 也在那时变化了很多。)

默认情况下,状态视图显示一些有用的信息,而在版本库历史视图,您可以按 [?] 获得更多帮助。在版本库历史视图中要记住的最重要键是 [enter] 用于主菜单,[r] 用于变基菜单。

基本 Git 功能

GitSavvy 提供了所有必要的 Git 命令,如 cloneinitcommitcheckoutpullpushfetch 等。

所有这些命令和功能都可以通过 Sublime 的命令板(ctrl+shift+p)轻松访问。只需开始键入您想使用的命令名称,例如 checkout,Sublime 会快速选择正确的命令。您可以识别 GitSavvy 命令,因为它们全部以前缀 git: 开头。

您按 enter 键选择命令后,GitSavvy 往往会启动向导。例如,键入 checkout 将显示可用的分支列表,而键入 checkout new branch 将要求输入新分支的名称。请注意,Sublime 的模糊逻辑有助于键入长命令,并记住在命令板中使用的缩写词。例如,在我的计算机上,键入 chn 后按 enter 就足够创建新分支。

Git 状态、分支和标签的特殊视图

GitSavvy 为 Git 状态、分支和标签提供了专用视图。用户可以通过运行 git: statusgit: branch 命令访问这些视图。

除了这些视图,GitSavvy 还提供用于查看差异和补丁、创建提交或显示存储库历史的高级特殊视图。然而,对于新用户来说,运行 git: status 命令可能是进入 GitSavvy 世界的第一个入门点。从这里,您可以暂存([s])、取消暂存([u])、丢弃([d])整个文件中的更改。您还可以启动提交阶段([c])、打开版本库历史([g])、打开差异视图([f])和推送当前分支([p])。

提示:如果还没有进行暂存,按 [c] 将默认使用 -a 标志提交所有更改。

请注意,类似状态视图这样的内容较少的视图通常将它们的键盘绑定直接显示在屏幕底部,而内容较多的视图,例如仓库历史,在您按下 [?] 后将只显示在帮助弹出窗口中的键盘绑定。

可用性提示 1

GitSavvy 提供了很多键盘绑定,但它不包括任何 全局 短路键。这是因为添加全局快捷键可能会与其他包或内置功能冲突。但是,您可以通过打开 Sublime 的键绑定文件(首选项: 键绑定)轻松添加您自己的全局快捷键。

例如,您可以通过在键绑定文件中添加以下内容来为从任何位置打开状态视图添加全局快捷键

{ "keys": ["ctrl+shift+s"], "command": "gs_show_status"}

这将允许您使用 ctrl+shift+s 快捷键快速访问 Git 状态视图,无论您打开什么文件或视图。您可以通过类似的方式添加其他 GitSavvy 命令的快捷键。

可用性提示 2

在检查 git status 之后,第二常见的行为可能是进行提交。因此,在此处设置快捷键是个好主意。只需在 Sublime 的键绑定中将以下代码添加到

{ "keys": ["ctrl+shift+c"], "command": "gs_commit"},

gs_commit 将在 GitSavvy 中打开提交视图。如果没有暂存的更改,它将假定 -a 标志并选择所有更改。但是,它不会像 Git 那样包含未跟踪的文件。在提交视图中,您总是可以在底部看到要提交的更改的差异性。在这里,您可以使用键盘快捷键 [u][d] 直接取消暂存或丢弃块。请注意,您可以按 ctrl+z 取消丢弃。

高级提示:查找和运行(GitSavvy)命令

有时您可能想知道要使用哪些命令以及它们的可选参数。您可以使用 Sublime 的控制台,这是一个 Python REPL,来帮助您完成这项任务。

要打开 Sublime 中的控制台,按 Windows 或 Linux 中的 Ctrl + ` 或 Mac 中的 Cmd + `。这将打开一个面板,您可以在其中输入命令。

要启用命令记录,请在控制台中输入以下命令

sublime.log_commands(True)

这将在控制台记录用户执行的 所有命令。

现在,启动 GitSavvy 的命令面板(《code>ctrl+shift+p),并运行一个命令,例如 git: status。在命令执行后,查看控制台以查看命令的名称和传递的任何可选参数。

例如,您可能看到

command: gs_commit {"amend": true}

在这里, gs_commit 是命令的名称,传递的可选参数是 {"amend": true}。这些信息对于学习和自定义 GitSavvy 的功能非常有用。

完成时,不要忘记在控制台中输入以下内容以关闭命令记录

sublime.log_commands(False)

仓库历史

GitSavvy 的 Repo History 视图以可视化方式展示仓库的提交历史,通过 git: Repo History 命令可以访问。它与 gitk 类似,但功能更多。当编辑受跟踪文件时,您还可以使用 git: File History 来打开特定文件的历史视图。但您也可以通过使用 [l](它会打开所有受跟踪文件的列表)将任何标准 Repo History 视图转换为文件/文件夹历史视图,反之亦然。

Repo History 视图还提供了额外的筛选选项。按 [a] 在显示 所有 分支和仅显示当前签出分支之间切换。按 [f] 打开筛选提示,您可以在其中添加文本垢过滤项,如 --author=-Sfoobar。您可以使用上下箭头键访问默认筛选列表或查看您之前使用的筛选历史。一旦筛选了图表,您就可以使用 [F] 快速打开和关闭筛选。

[s] 进入一个特殊的“概览”模式,仅显示分支和标签的顶端。(在那种模式下,按 [a] 也会开关标签。)

在提交图上移动,您可以使用鼠标或上下箭头键。如果您想要在图表中进行更大的跳跃,可以使用键盘快捷键 alt+upalt+down,这只会跳转到“first-parent”。

Repo History 视图有两个主要菜单。按 [enter] 将打开标准菜单,提供典型的功能,例如检出、选择和还原所选提交。您还可以找到基本分支和标签功能,如创建或删除分支和标签。此外,您还可以移动分支指针(而不是重置),或从其上流更新分支。

通过按 [r] 可以访问第二个菜单,它是专门为变基设计的。此菜单允许您重写提交信息([W])、编辑([E])或删除提交,应用修复,并将任何内容变基为任何内容。例如,您可以将一系列提交提取到主分支中,从而从复杂的分支创建两个功能分支。

注意修复提交与其关联提交之间的视觉连接。 当光标位于修复(或压缩)提交上时,[r]ebase 菜单将提供应用该修复的具体操作。

您可以在之后审查任何变基。例如:

再次打开 [r]ebase 菜单。(这里当前检出的分支命名为“which”。) 并排显示当前检出的分支的先前提示。 显示主菜单,也许显示两个变体之间的差异,或通过选择“移动…”来撤销。

如果您需要手动解决合并冲突,显示差异可以帮助确保您没有引入任何意外更改或犯错。(在大多数情况下,差异将为空,表示两个端点在代码上相同。)从主菜单,您还可以选择“移动”或将分支重置到上一个提示,从而有效地撤销变基。“移动”将简单地移动分支标签,而“重置”则执行您典型的重置操作,这也可以根据您选择的方式修改 Git 的暂存区域和丢弃未提交的更改。通常,在这里选择“移动”以撤销变基。

行历史

GitSavvy 有一个名为“行历史”的功能,也称为 git 的“wtf?”视图。这允许您查看仓库中特定行的提交历史。在您使用传统的 blame 视图之前,这是快速研究特定代码片段历史的好方法。

要访问行历史,您可以从任何正常视图开始,选择一些行,例如一个函数,然后从命令面板发出 git: Line History 命令。但是,您实际上可以从 GitSavvy 显示给您提供的任何差异/补丁开始。

为了使其更加无缝,我再次建议创建一个快捷键。例如,您可以将以下内容添加到您的用户键绑定中

{ "keys": ["ctrl+shift+l"], "command": "gs_line_history"},

有了这个,您可以使用 ctrl+l 选择一些行,然后使用 ctrl+shift+l 跟踪这些行。

GitSavvy 将然后显示提交/补丁的片段来显示这些行的演变。在这样一个摘录中按 [o] 将打开完整的提交。[O] 将显示在那个特定时间点存在的文件版本。例如,按 [f] 将初始化对光标下提交的修复提交。(根据需要,使用暂存状态或如果没有暂存任何内容,则使用所有更改。)

提示:行历史还可在任何显示差异或补丁的视图中使用。(因此,它也可在行历史视图中使用。)在这样一个视图中,您不一定必须选择任何行,因为它将默认为您选择当前块,为您提供所谓的 “hunk-history”

更深层次:[o][O] 之后,您可以使用 [n](下一个)和 [p](上一个)在时间上导航。您可以通过 [g] 显示提交的上下文,并通过打开内联差异查看块上下文。这更容易使用更多快捷键。

{ "keys": ["ctrl+shift+,"], "command": "gs_inline_diff" },
  { "keys": ["ctrl+shift+."], "command": "gs_diff", "args": {"current_file": true} },

这听起来有点疯狂,对吧?所有的视图都是连接的,您真的可以导航历史记录。

Git差异视图

GitSavvy提供了一个 git diff 视图,允许用户暂存、取消暂存或重置(丢弃)文件、块或单行。

修复/合并助手

GitSavvy提供了可以在包括“行历史”视图在内的各种视图中访问的修复/合并助手。

GitHub集成

GitSavvy提供了一个GitHub集成,允许用户在提交时引用问题/协作者,在GitHub上打开选中行的当前文件或提交,并从当前分支创建新的拉取请求。

GitHub风格的责任视图

GitSavvy提供了一个“责任”视图,显示块元数据,并允许用户查看进行更改的提交,类似于GitHub的责任视图。

文档

该文档可能已过时。是的,很遗憾,但您可以贡献,我最终会处理的 但是 每个特殊视图都有帮助信息可用,只需按 ?

功能文档可以在这里找到。您也可以在Sublime Text中通过打开命令板并输入GitSavvy: help来访问。

高级功能

状态仪表板 标记仪表板
显示和概述,并提供操作以操纵项目状态。 查看和操作本地和远程标记。
差异
暂存、取消暂存或丢弃块、文件或单行。 (视频)
GitHub集成
在提交中引用问题和个人协作者。在浏览器中打开GitHub上的文件,预选行。创建拉取请求。对存储库进行分支。