有没有适用于Git的图形用户界面客户端?

我正在使用 git 对各种项目进行版本控制。

是否有GUI软件可以浏览项目的提交和分支,并检索git项目的版本?


这是一个起点清单:https://git-scm.com/downloads/guis - matth
还有另一个优秀且最新的软件,即gitKraken,网址为https://www.gitkraken.com/。 - vineet
13个回答

我猜你正在寻找一个易于使用的git前端工具。
请查看Git Wiki上InterfacesFrontendsAndTools页面中的"图形界面"部分。那里提到了以下内容:
  • gitk - 图形化历史浏览器,基于Tcl/Tk,与Git一起分发(通常在gitk软件包中)
  • git gui - 图形化提交工具,基于Tcl/Tk,与Git一起分发(通常在git-gui软件包中)
  • QGit - 使用Qt工具包
  • Giggle - 使用GTK+工具包
  • git-cola - 使用PyQt4
  • gitg - GTK+/GNOME版的GitX
  • tig - text模式下的interface for git,同时是GUI和分页器,使用ncurses
编辑:这些是其他答案中提到的建议。

有几款软件我个人觉得非常容易使用。

  • 咯咯笑:我个人使用咯咯笑 安装咯咯笑。它简单而直观。

    截图

  • Cola Git GUI:我没有使用Cola Git 安装git-cola,但看起来很有前途。

    截图


4Git有一个很好的GUI客户端列表http://git-scm.com/downloads/guis 我真的很喜欢那个“仅显示适用于我的操作系统(Linux)的GUI”按钮 ;) - Kuchi
3我知道这是一个老答案,但我想赞同使用git-cola。它处理暂存文件的方式是我尝试过的Linux git客户端中最用户友好的。 - Daniel
@Kuchi 你可能会习惯于使用Wine来处理一些Windows图形用户界面。通过操作系统过滤器来筛选选项,会限制你的真实选择。根据我的经验和普遍情况来看,Windows的图形用户界面更加精细。除此之外,SmartGUI是免费的,并且非常有帮助。 - m3nda
我想-1 git-cola。我用过几个git图形界面,这是迄今为止我用过的最不功能丰富和直观的。无法隐藏单个文件,没有历史记录支持,无法在图形界面中更改任何设置(设置只读)。 - Josh Noe
2Eclipse的git插件简单、清晰且有条理,值得一提。 - Katu
GitKraken在允许进行任何操作之前要求登录。本想用它来管理本地仓库,结果立即放弃了。 - Daniel

经过测试了上述提到的所有工具,我最终选择了以下工具来管理我的Git仓库:

SmartGit

SmartGit是一个易于使用的Git图形用户界面,具有优化的工作流。SmartGit支持软件开发项目中每天工作所需的所有Git和Mercurial功能:

  • 本地工作树操作
  • 状态、差异、日志
  • 推送、拉取、获取(适用于所有协议)
  • 标签和分支管理
  • 合并、挑选、变基、还原
  • 子模块支持
  • 存储管理
  • 远程管理

它还有一个易于使用的向导,可以连接到GitHub和BitBucket等在线仓库。

enter image description here

RabbitVCS

相比之下,RabbitVCS与其他工具有不同的方法。它不是为您的git存储库提供外部用户界面,而是将自己整合到Nautilus中。实际上,RabbitVCS是一组图形工具,旨在提供对您使用的版本控制系统的简单和直接的访问。

enter image description here


3RabbitVCS在我的Ubuntu 13.10上简直是浪费时间。几乎每次操作都会导致崩溃。https://github.com/rabbitvcs/rabbitvcs/issues/21 - Omid
rabitvcs有一些bug,并且开发进展不太活跃。 - aWebDeveloper
2SmartGit在商业使用上是收费的;而GitEye是免费的,同时也是商业开发的,质量很好。 - Engineer

是的,git有一个图形界面可以通过git gui命令运行。
如果这个方法不起作用,那就意味着你需要安装git的图形界面。你可以通过安装git-gui Install git-gui软件包来实现。或者,更好的办法是安装git-all Install git-all软件包。
sudo apt-get update && sudo apt-get install git-all

请参阅详细信息man git-gui。请注意,尽管手册被称为git-gui,但您需要使用git gui来运行它。

安装完成后,您可以使用git guigit citool命令启动git-gui工具。 - ubuntico
除了极其丑陋的外观之外,“git gui”是一个非常功能齐全的工具。我喜欢它。 - Sebastian
1在开始使用git gui之前执行echo '*TkTheme: clam' | xrdb -merge -会让它稍微好看一点。 - Mikko Rantalainen

我之前用过gitg一段时间,后来又回到了只用命令行界面。如果想要一些娱乐价值的话,可以试试gource,它可以将你的git历史转化为动画 :)

5+1 for gource! 可能不是非常有用,但绝对很酷! - Leo
这是如何可视化 Linux 内核的最近 10000 个提交的方法:(1) 使用 git clone 克隆 Linux 仓库 (2) 运行以下命令:git log --pretty=format:user:%aN%n%ct --reverse --raw --encoding=UTF-8 --no-renames -n 10000 | gource --log-format git -a 2 -i 120 -s 1 --loop --padding 1.4 --max-file-lag 1 --user-friction 0.2 - (3) 按下 fu 隐藏文件名或用户名。 - Mikko Rantalainen
3@MikkoRantalainen 哦,是的,我怎么忘记了那个简单的命令 :/ - m3nda

我非常喜欢SmartGit。您可以在这里阅读更多信息它是我发现的Linux上最完整的git客户端。话虽如此,命令行确实有其优势,我建议您在使用GUI之前充分学习它。

+! 智能 Git - mreq
2学习命令行先赞一个!图形界面太容易让人心生诱惑,总想着“试一下那个按钮,重置硬件听起来像是我想要的”。 - Gauthier
此外,您还可以获得命令历史记录,并且文本反馈不会像对话框一样轻易消失。 - Gauthier
3没有免费商业使用许可(嗯,我可以撒谎),并且在Ubuntu上的集成尚未完成(.deb)。虽然这不是决定性因素,但仍然有一些缺点。 - Juh_


1我自己也使用过这种方法。根据我的经验,SmartGit可以与GitHub的双因素身份验证配合使用,而命令行工具则不行。只需确保在提示时,告诉SmartGit选择“合并获取的远程更改”,而不是“将本地分支变基到获取的更改”。如果你不知道自己在做什么,后者可能会导致严重问题。请参阅https://git-scm.com/docs/git-rebase上的“从上游变基恢复”部分。 - Stephen G Tuggy

我是GitKraken开发团队的一员,所以我有点偏袒,但我强烈推荐你去试试。它是跨平台的,所以你可以在WindowsMacLinux上使用同一个工具,并且它还具有一些其他独特的功能,包括撤销/重做、索引搜索和响应式、直观的设计。如果GitKraken对你不起作用,我也曾经使用过并且在Git Extensions(Windows)和GitHub Desktop(Windows/Mac)上取得了一些成功。

1我刚在Ubuntu 16.04上安装了GitKraken,第一印象非常好。@chris,你们有计划在某个时候开源这个项目吗? - czerasz
@czerasz 目前没有这样的计划,不过GK确实依赖并为几个开源项目做出了贡献。关于此事,这里有更多信息:https://www.gitkraken.com/faq#faq-open-source - Chris
3GitKraken是Linux上最好的免费Git图形界面客户端!非常感谢!在使用IntelliJ IDEA集成开发环境时,它们的版本控制系统也非常出色。 - Maks
GitExtensions可以在Linux上通过Mono运行,我已经成功地在各种Ubuntu版本上安装和使用过它。 - matth
不支持Centos / Fedora - Josh Noe

还有一个相对较新的软件(几个月前刚发布)叫做GitEye

它提供了一个熟悉的图形界面,因为它基于Eclipse RCP框架。 你可以在Windows和Mac上使用它,因为它是基于Java运行的。

试一试吧,而且它是免费的。

到目前为止,我唯一的抱怨是它的合并工具相对有限。


2需要在首次使用后的30天内注册。非常简单直接,是一个很好的多平台解决方案。 - CrandellWS

ungit 看起来是一个功能强大、直观的 Git 图形用户界面。


我使用 Git 扩展 - 我发现它非常有帮助,符合我的需求。这里是在 12.04 上运行它的链接。


真可惜你得安装Mono... - scrat.squirrel
安装也在官方文档中有详细描述:https://git-extensions-documentation.readthedocs.org/en/latest/getting_started.html#installation-linux - matth