3 个 Git 图形化工具

7 位读者喜欢这篇文章。
Media ladder

Opensource.com

阅读

在本文中,我们将了解一些方便的附加组件,以帮助您将 Git 舒适地集成到您的日常工作流程中。

我在许多这些花哨的界面出现之前就学习了 Git,而且我的工作流程通常是基于文本的,因此 Git 的大多数内置便利性对我来说非常适用。在我看来,始终最好了解 Git 的原生工作原理。但是,有选择总是好的,所以这些是在终端之外开始使用 Git 的一些方法。

KDE Dolphin 中的 Git

我是 KDE 用户,即使不总是在 Plasma 桌面中,也将其作为我在 Fluxbox 中的应用程序层。Dolphin 是一款出色的文件管理器,具有许多选项和许多秘密的小功能。特别有用的是人们为其开发的所有插件,其中一个插件是几乎完整的 Git 界面。是的,您可以从舒适的桌面本地管理您的 Git 仓库。

但首先,您需要确保已安装附加组件。一些发行版附带功能齐全的 KDE,而另一些发行版只提供基本功能,因此如果您在接下来的几个步骤中没有看到 Git 选项,请在您的存储库中搜索类似 dolphin-extrasdolphin-plugins 的内容。

要激活 Git 集成,请转到任何 Dolphin 窗口中的设置菜单,然后选择配置 Dolphin

配置 Dolphin 窗口中,单击左列中的服务图标。

服务面板中,滚动浏览可用插件列表,直到找到 Git

Dolphin plugins.

保存您的更改并关闭 Dolphin 窗口。当您重新启动 Dolphin 时,导航到 Git 仓库并四处看看。请注意,所有图标现在都有标志:绿色框表示已提交的文件,实心绿色框表示已修改的文件,没有图标表示未跟踪的文件,等等。

现在,当在 Git 仓库内调用时,您的右键单击菜单具有上下文相关的 Git 选项。您可以在 Dolphin 窗口内单击时启动检出、推送或拉取,甚至可以对文件执行 git addgit remove

Git commands in Dolphin.

您无法在 Dolphin 中克隆仓库或更改远程路径,但必须切换到终端,只需按 F4 即可。

坦率地说,KDE 的这个功能太酷了[原文如此],这篇文章可以到此结束了。Git 与您的原生文件管理器的集成使 Git 的工作几乎是透明的;无论您处于流程的哪个阶段,您需要做的一切都会发生。终端中的 Git,以及当您切换到 GUI 时等待您的 Git。这是完美的。

但是等等,还有更多!

Sparkleshare

从桌面的另一端传来 SparkleShare,这是一个使用文件同步模型(“像 Dropbox!”)的项目,由一些 GNOME 开发人员启动。它没有集成到 GNOME 的任何特定部分,因此您可以在所有平台上使用它。

如果您运行 Linux,请从您的软件存储库安装 SparkleShare。其他操作系统应从 SparkleShare 网站下载。您可以安全地忽略 SparkleShare 网站上的说明,这些说明用于设置 SparkleShare 服务器,这不是我们在这里要做的。如果您愿意,您当然可以设置 SparkleShare 服务器,但 SparkleShare 与任何 Git 仓库兼容,因此您无需创建自己的服务器。

安装完成后,从您的应用程序菜单启动 SparkleShare。逐步完成设置向导,包括两个步骤和一个简短的教程,并可以选择将 SparkleShare 设置为桌面的启动项。

创建 SparkleShare 账户。https://open-source.net.cn/sites/default/files/4_sparklesetup.jpg" title="创建 SparkleShare 账户。" typeof="foaf:Image" width="520" height="430">

橙色的 SparkleShare 目录现在位于您的系统托盘中。目前,SparkleShare 不知道您计算机上的任何内容,因此您需要添加一个托管项目。

要添加 SparkleShare 要跟踪的目录,请单击系统托盘中的 SparkleShare 图标,然后选择添加托管项目

新的 SparkleShare 项目。https://open-source.net.cn/sites/default/files/4_sparklehost.jpg" title="新的 SparkleShare 项目。" typeof="foaf:Image" width="530" height="380">

SparkleShare 可以与自托管的 Git 项目或托管在公共 Git 服务(如 GitHub 和 Bitbucket)上的项目一起使用。为了获得完全访问权限,您可能需要使用 SparkleShare 提供给您的客户端 ID。这是一个 SSH 密钥,充当您用于托管的服务的身份验证令牌,包括您自己的 Git 服务器,该服务器也应使用 SSH 公钥身份验证而不是密码登录。将客户端 ID 复制到服务器上 Git 用户的 authorized_hosts  文件中,或复制到 Git 主机的 SSH 密钥面板中。

配置要使用的主机后,SparkleShare 会下载 Git 项目,包括(如果选择)提交历史记录。在 ~/SparkleShare 中查找文件。

与 Dolphin 的 Git 集成不同,SparkleShare 非常隐形,令人不安。当您进行更改时,它会悄悄地将更改同步到您的远程项目。对于许多人来说,这是一个巨大的好处:拥有 Git 的所有功能,而无需任何维护。对我来说,这令人不安,因为我喜欢控制我提交的内容以及我使用的分支。

SparkleShare 可能不适合所有人,但它是一个强大而简单的 Git 解决方案,展示了不同的开源项目如何完美和谐地结合在一起,创造出独特的东西。

Git-cola

与 Git 仓库一起工作的另一种模式不太原生,更像是一种监视方法;与其使用集成应用程序直接与您的 Git 项目交互,不如使用桌面客户端来监视项目中的更改,并以您选择的任何方式处理每个更改。这种方法的优点是专注。当您的项目中只有三个文件正在积极处理时,您可能不关心所有 125 个文件,因此将它们放在首位是有帮助的。

如果您认为有很多 Git 网络主机,那么您还没有见过什么。 适用于您桌面的 Git 客户端 比比皆是。实际上,Git 实际上附带了一个内置的图形化 Git 客户端。其中最跨平台且最可配置的是开源 Git-cola 客户端,用 Python 和 Qt 编写。

如果您使用的是 Linux,则 Git-cola 可能在您的软件存储库中。否则,只需从站点下载并安装即可

$ python setup.py install

当 Git-cola 启动时,您会看到三个按钮,用于打开现有仓库、创建新仓库或克隆现有仓库。

无论您选择哪个,在某个时候您都会得到一个 Git 仓库。Git-cola,以及我使用过的大多数桌面客户端,都不会尝试成为您进入仓库的界面;它们将此留给您的正常操作系统工具。换句话说,我可能会使用 Git-cola 启动一个仓库,但随后我会在 Thunar 或 Emacs 中打开该仓库以开始我的工作。将 Git-cola 打开作为监视器效果很好,因为当您创建新文件或更改现有文件时,它们会出现在 Git-cola 的状态面板中。

Git-cola 的默认布局有点非线性。我更喜欢从左到右移动,并且由于 Git-cola 非常可配置,因此欢迎您更改布局。我将我的布局设置为最左侧的面板是状态,显示对当前分支所做的任何更改,然后在右侧是差异面板,以防我想查看更改,以及用于快速访问常见任务的按钮的操作面板,最后最右侧的面板是提交面板,我可以在其中编写提交消息。

Git-cola 界面。https://open-source.net.cn/sites/default/files/4_gitcola.jpg" title="Git-cola 界面。" typeof="foaf:Image" width="520" height="312">

即使您使用不同的布局,这也是 Git-cola 的一般流程

更改会出现在状态面板中。右键单击更改条目,或选择一个文件并单击操作面板中的暂存按钮,以暂存文件。

暂存文件的图标变为绿色三角形,表示该文件已被修改和暂存。您可以通过右键单击并选择取消暂存选定项,或通过单击操作面板中的取消暂存按钮来取消暂存文件。

差异面板中查看您的更改。

当您准备好提交时,输入提交消息并单击提交按钮。

操作面板中还有其他按钮,用于其他常见任务,例如 git pullgit push。菜单完善了任务列表,其中包含用于分支、查看差异、变基和更多操作的专用操作。

我倾向于将 Git-cola 视为文件管理器的一种浮动面板(并且我仅在 Dolphin 不可用时才使用 Git-cola)。一方面,它不如完全集成且具有 Git 感知的文件管理器那样具有交互性,但另一方面,它几乎提供了原始 Git 所做的所有事情,因此实际上功能更强大。

有大量的图形化 Git 客户端。有些是付费软件,没有源代码可用,有些只是查看器,有些尝试使用特定于客户端的特殊术语(“同步”而不是“推送”?)来重新发明 Git,还有一些是特定于平台的。Git-Cola 一直是在任何平台上最易于使用的,并且是最接近纯 Git 的,以便用户在使用它的同时学习 Git,并且专家对界面和术语感到舒适。

Git 还是图形化?

我通常不使用图形工具来访问 Git;大多数情况下,当我帮助其他人找到适合自己的舒适界面时,我会使用我讨论过的那些工具。但归根结底,这取决于什么适合您的工作方式。我喜欢基于终端的 Git,因为它与 Emacs 集成良好,但在我主要在 Inkscape 中工作的一天,我可能会自然而然地转回在 Dolphin 中使用 Git,因为我无论如何都在 Dolphin 中。

如何使用 Git 取决于您;要记住的最重要的事情是,Git 旨在让您的生活更轻松,并让您为工作提出的那些疯狂想法更安全地进行尝试。熟悉 Git 的工作方式,然后从您认为最适合自己的任何角度使用 Git。

在我们的下一期中,我们将学习如何设置和管理 Git 服务器,包括用户访问和管理,以及运行自定义脚本。

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,并且经常同时从事这两个行业。

17 条评论

我倾向于在如何使用 Git(以及一般的版本控制)方面保持中立。我喜欢从命令行执行所有版本控制操作... 但是,图形环境往往提供导航项目历史记录(或项目内文件)的最简单(且最具吸引力)的方式。例如,在使用 Mercurial 时,我已经非常习惯 TortoiseHg 的 Workbench 用于此目的。不幸的是,我还没有找到相应的 git 图形化工具... 虽然 Git-cola 看起来可能很有希望。

您说得很有道理。在 GUI 中查看项目历史记录更美观,尤其是在我们谈论图形时。而且,正如我想我在文章中提到的那样,我真正发现自己积极使用 GUI 前端的一次是当我处理图形文件时。也许不是巧合。

回复 ,作者:Jason van Gumster

除了查看历史记录外,当我搞砸了一些事情并且需要重写历史记录时,我最有可能使用图形工具。

回复 ,作者:Jason van Gumster

适用于 MacOS 的 Github Desktop 客户端非常好用。它的功能有限,但它涵盖了最常见的内容,并且它所做的,它做得非常好。我仍然偶尔会回到命令行(最常见的是执行 squash 合并),但我使用 UI 执行大多数 Git 任务。

我已经看过它了,并且故意没有介绍它,不仅因为我没有 Mac,还因为我发现(在这里不要 *太* 过分夸张)他们对常见任务使用不同的术语是不可原谅的,似乎是为了训练用户不理解 git;例如,在推送时,您单击“同步”按钮。我意识到这在表面上比“推送”对新用户更熟悉,但如果我每次都必须将我的问题从“您是否推送了您的更改?”修改为 github 桌面用户“您是否同步了您的更改?”.... UI 中还有一些其他东西背叛了纯 git,但这是我想到的一个。但除此之外,是的,对于那些困在封闭源平台上的用户来说,这是一个不错的 GUI。

回复 ,作者:faseidl

还有 gitg

https://wiki.gnome.org/Apps/Gitg

它类似于 git-cola,但我发现界面更简洁易用。浏览历史记录很容易,树状结构的表示形式也非常有用。

有一些不错的 git UI,并且我认为(如果我没记错的话)我最终介绍了 git-cola,因为根据我的经验,它很容易在任何平台上启动和运行,它是 Python、PyQt 和 Git 的相当简单的组合。不确定在其他平台上启动 gitg 需要什么,但它确实很好。我提供咨询的某个地方的一些人使用它。

回复 ,作者:匿名(未验证)

我唯一使用过的 GUI git 工具是(闭源的)SmartGit 和 GitHub 的桌面应用程序。两者都很有用,但是使用命令行也有一些好处——即使对于像我这样的非技术人员也是如此。话虽如此,我想我会看看 Git-cola。

很棒的文章,Seth!我已经使用 KDE 近十年了,直到现在我才知道 Dolphin 的 git 支持。我倾向于从 CLI 执行我的大部分 git 操作,因为我经常远程登录,但我肯定会使用它。

我主要通过命令行使用 git。但是当查找更改历史记录时,我更喜欢 GUI,我使用 gitk。我可以在终端中发出 gitk 命令以在 GUI 窗口中浏览历史记录。

Gitk 是一个不错的小查看器。我没有在本文中介绍它,因为它*只是*一个查看器,但拥有一个也不错……这很方便,因为它包含在标准 git 安装中。是的,我同意:gitk 的编写方式使其功能可以通过其 GUI 或从 unix shell 获得,这非常好。

回复 ,作者:Junaid(未验证)

虽然不是开源的,但有一个工具 GitKraken 看起来很有希望。

好吧,如果没什么别的,它的名字也很聪明!鉴于 git 客户端基本上不生成任何数据(git 会生成数据,客户端只是连接到它),我“愿意”使用非开源 git 客户端……除了有这么多优秀的开源客户端(上面文章中提到了 3 个),我觉得没有理由看闭源的。我没有使用过 gitkraken,但我确实很欣赏它是完全跨平台的(例如,与 github 桌面客户端不同)。

回复 ,作者:Ash Bike(未验证)

我纯粹从终端使用 git,但评论部分的人提到 GUI 来处理历史记录或版本控制。老实说,我从未做过超出 Github 提交部分的版本控制。我想我不是真正的开发人员……。玩笑归玩笑,这很有趣。

有几种工具可以在 shell 中使用 git 查看历史记录。我想我从来没有真正考虑过“正确”的方法(我应该参考 https://git-scm.cn/book/en/v2 并查找它),但我通常使用 `git log --oneline | less` 和 `git blame`。这显示了提交历史记录,如果您对单个文件进行“取证”,这通常过于宽泛,但 git 允许使用双破折号语法获得更好的粒度,例如 `git log -- path/to/file` 和其他一些技巧。我不太担心 fork 和分支之类的事情,因为在工作中我们将所有提交变基到公共主干,因此分支和偏差或多或少都包含在合并的每个分支中。我想我想说的是,我也不是真的使用 GUI 来进行版本控制取证,但我确实打算尝试一下。

回复 ,作者:RaveYoda

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.