Gut
⚠️ Gut 目前仍处于 alpha 阶段,这意味着可能还有一些功能尚未完善
Gut 是 Git 的一个替代命令行工具。它提供了一致的命令命名和一系列实用功能。
如果你已经有多年的使用习惯,Gut 可能不适合你。
目录
示例
cd my-awesome-project
# 初始化一个新的 git 仓库
gut init
# 做一些更改
touch my-billion-dollar-idea.txt
# 提交你的新文件
gut save # gut commit 的别名
# 与远程仓库同步你的更改
gut sync
功能
- 内置凭证管理器
- 一致的命令命名
- 与云平台集成(合并和差异比较在 Web UI 中打开)
gut fix
命令帮助你修复 git 操作中的错误.gitignore
模板下载器- 简化的 GitHub 认证
主要实用命令
gut save
- 使用 gitmoji 提交更改gut sync
- 与远程仓库同步更改gut goto
- 通过临时修改工作树,让你回退项目状态到特定的提交gut fix
- 帮助你修复 git 操作中的错误gut revert
- 将项目恢复到之前的状态,以修复 n 次提交前引入的 buggut undo
- 放弃自上次提交以来的更改gut ignore
- 下载.gitignore
的模板gut whereami
- 显示你的 HEAD 指向哪里(不再需要rev-parse
)gut switch
- 创建新分支或切换到现有分支
安装
Windows
要在 Windows 上安装 gut,运行
scoop bucket add gut https://github.com/julien040/gut-scoop
scoop install gut/gut
MacOS
要在 macOS 上安装 gut,打开终端并运行
brew tap julien040/gut && brew install gut
Apt-get
echo "deb [trusted=yes] https://apt.gut-cli.dev /" | sudo tee /etc/apt/sources.list.d/gut.list
sudo apt-get update
sudo apt-get install gut
Yum
sudo tee /etc/yum.repos.d/gut.repo <<EOF
[gut]
name=Gut Repository
baseurl=https://yum.gut-cli.dev/
enabled=1
gpgcheck=0
EOF
sudo yum update
sudo yum install gut
AUR (Arch Linux)
注意: AUR 包不是由我维护的。如果你遇到任何问题,请联系包的维护者。
自行编译
yay -S gut
使用预编译二进制文件
yay -S gut-bin
从源码构建
你需要在你的机器上安装 go
go install github.com/julien040/gut@latest
原则
与云平台集成
我们有几种工具如GitHub、GitLab或BitBucket。那么,为什么不充分利用它们呢?当你尝试合并一个分支时,gut会打开一个页面来创建拉取请求。如果你想比较两个提交,gut会在你喜欢的仓库托管服务中打开比较视图。
不重写历史
Gut绝不允许你修改已推送到远程仓库的历史。
如果你想取消更改,运行gut revert
。它会创建一个新的提交,包含所选提交的状态。
如果你在提交信息中有拼写错误,gut只允许你在尚未推送时更改它。如果你试图修改提交中的文件,也是如此。
暂存区不再是问题
git跟踪的所有内容都会保存在你的下一个提交中。
Gut会跟踪所有文件,除非它们列在你的.gitignore
中。毕竟,.gitignore
的存在是有原因的。
分离的HEAD不再可怕
使用gut,进入分离的HEAD状态非常简单。只需运行gut goto <commit id>
就可以根据该提交更改你的工作树。
但gut不会让你停留在那里。
在分离的HEAD状态下,所有操作都会被阻止,直到你对那个提交做些什么。你可以回到一个分支或从那个提交创建一个新分支。 通过阻止操作,你不会在意识到它们没有连接到任何东西之前创建多个提交。
优秀的用户体验
如果你犯了错误,gut会尝试找出原因并再次提示你。 如果gut无法帮助你,它会尽最大努力指导你解决问题。
我相信,在学习新技术时,最好从高层次的理解开始,然后随着时间的推移逐渐深入。特别是在涉及Git时,我发现它从一开始就可能看起来很复杂(比如设置user.email
和user.name
)
与Git共存
虽然**gut
是一个有用的命令行工具,但它并不是为了取代git
命令行界面。事实上,如果Git消失了,gut
**将无法继续运行,因为它在内部严重依赖Git命令。
话虽如此,我认为**gut
**对于简单的任务来说是一个极好的选择,而Git仍然可以用于更复杂的任务。
文档
常见问题
为什么要建立这个项目?
在我学习编程的两年里,我发现git
非常令人沮丧。我总是害怕做错事并且无法恢复。这就是为什么我创建了gut
- 让每个人都能无痛使用git
。
如何联系开发者?
要讨论你想看到的新功能,请在GitHub上开启一个新的讨论。
对于bug,请开启一个新的问题。
对于任何与安全、商业或新闻相关的事项,请发送电子邮件至contact@julienc.me。
我可以贡献吗?
当然可以!
路线图
- 创建和删除标签。
- 冲突解决。
gut restore
用于检出特定文件。gut commit sparsely
用于创建仅包含指定文件而非所有文件的提交。gut time-machine
用于回到过去(例如,撤销拉取)。- 如果你想让你的功能添加到这里,请开启一个新的讨论!
许可证
作者
贡献
欢迎随时贡献!
查看contributing.md
了解如何开始。
请遵守本项目的行为准则
。