#版本控制 #github #git-workflow #gitlab #git #命令行 #cli-tool

app scud

用于简化您开发工作流程中多个版本控制过程的综合工具。工作进行中

12 个重大发布

0.13.0 2022 年 9 月 24 日
0.11.1 2022 年 8 月 21 日
0.5.0 2022 年 7 月 31 日

#1540开发工具

33 个月下载量

MIT 许可证

165KB
2.5K SLoC




💨 scud

🚧 WIP 🚧

快速移动,就像被风推动一样。

为什么? | 目标 | 状态 | 入门

一个专注于易用性和表达性使用诊断的开发工作流程中多个版本控制过程的简化工具。

报告错误 · 请求功能

目录

关于

为什么构建 scud?

Scud 最初是我为了自己构建的工具,试图弥合在本地修改代码库和在远程仓库中看到更改之间的差距。我想能够做到这一点,而无需反复编写一系列冗长的命令,使用各种工具来完成工作,或者为每个新项目进行独特的设置过程。

目标

我对一个能够提供以下功能的工具感兴趣:

  • 声明式版本和源控制 是一组高级声明性操作,用于加速任何项目开发过程中的重复性任务。
  • 对代码库内部和开发环境无依赖,不依赖于您的代码库的语言(例如,在 Rust 项目中工作,但不适用于 JavaScript、Python),也不依赖于开发者的 shell(例如,在 Fish 中工作,但不适用于 Zsh、Bash、Elvish 等)。
  • 易于使用,拥有简单直观的界面。
  • 快速,性能不受底层实现细节的影响。
  • 有用的诊断,受Rust编译器诊断的启发,通用使用信息和错误信息应清晰简洁,具有表达性的语法和语义高亮。

状态

Scud目前正在开发中,因此其完整功能尚未完成。然而,您可以现在免费使用它,并在可用时进行更新。Scud将在使用过程中通知您何时有新的更新,并提供方便的更新命令,scud update [别名: scud up],这将更新您本地的Scud副本到最新版本。

路线图

  • 通过clap_complete crate实现Scud的Shell自动补全功能
  • 使用man scud通过clap_mangen crate为Scud创建man页面,供用户使用
  • 尝试通过Docker容器分发工具,以便通过不在开发者的机器上安装Scud的依赖项来允许以更快的速度让新开发者上手
  • 未来,我希望添加对其他版本控制系统的支持,例如Mercurial和Breezy,以及源代码控制提供商,如GitHub、GitLab和BitBucket。

注意:在探索更多功能之前,我打算完善Scud的核心功能集

(返回顶部)

功能和功能

⚡ 加速提交

Scud支持一种提交工作流程,可以生成各种提交消息格式的提交消息(Angular、Conventional等),使开发者能够以简单、模块化和易于配置的方式创建人类可读的提交消息。

🛤 声明性和丰富的版本控制原语

Scud提供了一个声明性的、简洁的接口来访问底层版本控制系统,允许开发者以简单而强大的方式创建和迭代软件。

入门

您可以通过以下详细说明的安装方法之一开始使用Scud。此外,您在使用Scud之前必须安装所需的先决条件。

先决条件

要开始使用Scud,您必须在本地机器上安装Rust,可以通过以下简单的一行命令完成安装:

# Install Rust and toolchain manager, rustup.
curl https://sh.rustup.rs -sSf | sh

如官方Rust网站上所示。

安装

从 crates.io

可以从crates.io安装scud

# Install scud from crates.io.
$ cargo install scud

(返回顶部)

用法

命令行参数

scud [SUBCOMMAND] [OPTIONS]

选项

    -h, --help       Print help information
    -V, --version    Print version information

子命令

# Useful for creating, updating, and deleting branches as well as visualizing and switching between them.
branch        Handles CRUD operations when it comes to repository branching. [alias: br]

# Useful when you have reached a codebase state you want to remember
commit         Commits all staged files in the current local repository. [alias: c]

# Useful for further streamlining the stage and commit process.
commit-all     Stages all modified files in the current local repository and then commits them. [alias: ca]

# Useful for checking to see if your system is setup to work with all of the features of scud.
healthcheck    Checks to see required dependencies are installed. [alias: hc]

# Useful for quickly checking scud's subcommands and options.
help           Print this message or the help of the given subcommand(s).

# Useful for initializing a new local repository.
init           Initializes a local repository with a given VCS provider (currently supported: git, mercurial, breezy). [alias: i]

# Useful for pushing your local commits to the remote repository.
push           Pushes all commits to the remote repository. [alias: ps]

# Useful for pulling remote commits to your local repository.
pull           Pulls all commits from the remote repository. [alias: pl]

# Useful for staging all modified files in your local repository, making them ready to be committed.
stage          Stages all modified files in the current local repository ensuring they are ready to be committed. [alias: s]

# Useful for reverting changes made to files tracked by your version control system.
unstage        Unstages all modified files in the current local repository so they are ready to be committed again. [alias: u]

# Useful for useful updating scud to the latest version.
update         Handles the process of updating scud to the latest version. [alias: up]

注意:Scud的许多子命令(在适当的情况下)支持--dry-run标志,用于在低风险环境中测试用法,以及--info标志,用于在发出子命令时更好地了解Scud在底层执行的操作。

(返回顶部)

类似项目

  • cocogitto - Cocogitto是一组用于常规提交和semver规范的cli工具。
  • Commitizen - 为项目创建提交规则 🚀 自动增加版本 ⬆️ 和自动生成更改日志 📂
  • cz cli - 提交主义者的命令行实用程序。 #BlackLivesMatter
  • gitnow - 加速您的Git工作流程。 🐠
  • gitflow - Git扩展,提供Vincent Driessen的分支模型的仓库操作。

(返回顶部)

许可证

MIT

版权所有 © 2022,Josh Kersey

(返回顶部)

依赖项

~11–24MB
~348K SLoC