gitx 是使用 go 1.23.5 编写的一个命令行工具,旨在增强 git 的功能,提高项目管理的效率。
gitx 功能介绍
七个项目管理命令
- clone - 克隆指定的 Git 仓库,并切换到指定的分支。
- fetch - 快速合并 stable/main(稳定分支)代码。
- sync - 将特性分支代码合并到开发分支。
- select - 选择 config 配置的项目进行克隆。
- rename - 修改版本名称。
- use - 切换到指定的项目目录。
- am - 使用 AI 助手生成 git commit 信息。
三个辅助命令
- config - 设置工作目录,管理配置。
- install - 安装 gitx 工具。
- doc - 获取文档地址。

依赖
- github.com/spf13/cobra - 用于创建强大的命令行应用程序。
- github.com/manifoldco/promptui - 用于在命令行中创建交互式提示。
- github.com/openai/openai-go/v3 - 用于与 OpenAI API 进行交互,提供智能功能,生成 git commit 信息。
main.go
package main
import (
"log"
"github.com/deliangyang/gitx/commands"
"github.com/spf13/cobra"
)
var (
version = "v1.0.0"
rootCmd = &cobra.Command{
Use: "gitx",
Short: "A CLI tool for advanced Git operations",
Long: `A CLI tool for advanced Git operations.
It provides various commands to manage Git repositories efficiently.`,
}
)
func main() {
rootCmd.AddCommand(commands.ConfigCmd) // 设置工作目录
rootCmd.AddCommand(commands.CloneCmd) // 克隆仓库
rootCmd.AddCommand(commands.SelectCmd) // 选择 config 配置的项目
rootCmd.AddCommand(commands.SyncCmd) // 将特性分支代码合并到开发分支
rootCmd.AddCommand(commands.FetchCmd) // 快速合并 stable/main 分支代码
rootCmd.AddCommand(commands.AICommitCmd) // 使用 AI 助手生成提交信息
rootCmd.AddCommand(commands.InstallCmd) // 安装 gitx
rootCmd.AddCommand(commands.RenameCmd) // 修改版本名称
rootCmd.AddCommand(commands.UseCmd) // 切换版本
rootCmd.AddCommand(commands.DocCmd) // 获取文档地址
rootCmd.Version = version
if err := rootCmd.Execute(); err != nil {
log.Fatalln("Execute rootCmd fail:", err)
}
}
待完善
- 目前只支持 Linux 系统,后续计划支持 Windows 和 MacOS。
- 根据自己和其他使用者的需求,增加更多 git 操作命令,提升项目管理和工作效率。