[编程工具]Git 的 Go 语言实现 go-git

Python012

[编程工具]Git 的 Go 语言实现 go-git,第1张

go-git 是一个 Go 语言实现的高度可扩展的 Git 实现库。可以使用友好的 API 来管理 Git 的仓库。支持不同类型的存储,包括内存文件系统,也可以通过接口 Storer实现对存储的扩展。

该项目从 2015 年开始开发。项目旨在兼容 git ,所有的操作实现与git完全一样。两者的兼容比较请阅读 compatibility documentation.

基本示例

一个实现 git clone 的最基本示例:

输出结果:

实现内存存储的示例

将 git 仓库克隆到内存中,并打印 HEAD 的 历史 记录,类似 git log :

输出结果:

版本控制程序。就是对你的软件每次修改进行记录,方便出问题时回退。

hg命令本来的软件名字加mercury, git就叫git.

还有svn( subversion), cvs.

目前比较常用的是svn, 比较受人欢迎的是git. 版本控制软件是软件开发的基础工具,不光go需要用到,所有语言的软件开发都用。

一个很好的git的开源软件平台叫github.com,可以试试。还有什么 问题可以加我好友多聊聊。

先给出项目地址:https://github.com/jesseduffield/lazygit

lazygit 是一个用于 Git 命令行的简单终端 UI,使用 Go 语言编写,用到了 gocui 库,目的是在命令行提供 Git 的图形界面。lazygit 让你有一种源自 Sourcetree 的感觉,但是在以终端为中心的环境中。Lazygit 快速且易于使用,你只需在 git 存储库中的终端中调用 lazygit 即可。lazygit 可以在Linux、macOS、FreeBSD和Windows上运行。

还记得咱们之前推荐的 Go 语言实现的帅帅的 Docker 终端 UI:lazydocker吗?这是同一个作者哦,lazygit 的 star 数达到 12.5k+。

看下作者录制的视频:

是不是挺棒的!

可以直接在这里下载二进制文件 https://github.com/jesseduffield/lazygit/releases,或者按照如下方式安装,比如 Mac 下通过 Homebrew 安装

冲突解决

Interactive Rebasing

赶紧试试吧~