3 个版本
使用旧的 Rust 2015
0.1.2 | 2019年12月2日 |
---|---|
0.1.1 | 2018年3月24日 |
0.1.0 | 2017年7月1日 |
在 命令行工具 中排名第 2940
33KB
597 行
ghcl: GitHub 克隆
自动分支、克隆并设置 GitHub 仓库的上游远程仓库。默认情况下,master 分支将跟踪上游远程仓库。
作为向 GitHub 仓库贡献的“快速入门”工具。GitLab 和 BitBucket 等更多服务即将推出™。代码已准备好支持多个服务,但它们的 API 尚未实现。
本项目遵循 MIT 许可证。有关详细信息,请参阅 LICENSE.txt
安装
此项目需要 libgit2
和 cmake
进行构建。
目前,所有安装方法都需要从源代码构建,并且需要安装可工作的 Rust。要快速设置 Rust(和 Cargo),请使用 rustup。
- 通过 crates.io:
cargo install ghcl
- 通过 GitHub
git clone https://github.com/PlasmaPower/ghcl.git cd ghcl cargo build --release sudo cp target/release/ghcl /usr/bin # or just cargo install, to install for just your user
参数
ghcl 0.1.0
Lee Bousfield <email redacted here to prevent spam>
Automatically forks and clones a GitHub repository
USAGE:
ghcl [FLAGS] [OPTIONS] <REPOSITORY> [CLONE_PATH]
FLAGS:
-h, --help Prints help information
--no-quiet Don't be quiet (output status messages)
--no-track-upstream Don't setup master to track upstream
--no-upstream Don't setup an upstream remote (implies no_track_upstream)
-q, --quiet Don't output status messages
--setup-upstream Setup an upstream remote (default)
--track-upstream Setup master to track upstream (default, imples setup-upstream)
-V, --version Prints version information
OPTIONS:
-c, --config <FILE> Sets a custom config file
-s, --default-service <SERVICE> The service to be used if the repository is in the form user/repo [values: github, GitHub, Github]
--fork-timeout <TIMEOUT> The maximum timeout for the fork creation (default: 30)
-o, --organization <ORGANIZATION> Fork into an organization
--origin-protocol <GIT_PROTOCOL> The git protocol to use for the origin (default: SSH) [values: ssh, https, SSH, HTTPS]
-p, --password <PASSWORD> Your password (insecure - use a personal access token and put it in your config, or input your password when prompted)
--remote-name <REMOTE_NAME> The name of the upstream remote to create (default: "upstream")
--upstream-protocol <GIT_PROTOCOL> The git protocol to use for the upstream (default: HTTPS) [values: ssh, https, SSH, HTTPS]
-u, --username <USERNAME> Your username
ARGS:
<REPOSITORY> Repository to fork and clone
<CLONE_PATH> Where to clone the repository (defaults to the name of the repo)
配置
配置文件位于
- Linux:
~/.config/ghcl/config.yml
(或$XDG_CONFIG_HOME/ghcl/config.yml
) - MacOS:
~/Library/Application Support/ghcl/config.yml
- Windows:
%APPDATA%\PlasmaPower\ghcl
内容(所有内容都是可选的,并且可以被参数覆盖)
键 | 类型/有效值 | 描述 |
---|---|---|
organization | 字符串 | 克隆仓库的组织 |
track_upstream | 布尔值 | 是否将 master 分支设置为跟踪上游?(如果为真,则 setup_upstream 不能为假) |
setup_upstream | 布尔值 | 是否创建上游远程仓库? |
remote_name | 字符串 | 创建的上游远程仓库的名称(如果 setup_upstream 为真则使用) |
origin_protocol | HTTPS 或 SSH | 用于源远程的协议 |
upstream_protocol | HTTPS 或 SSH | 用于上游远程的协议(仅在 setup_upstream 为 true 时使用) |
default_service | 目前仅支持 github | 如果仓库形式为 "用户/仓库",则使用的服务 |
quiet | 布尔值 | 是否输出状态消息? |
fork_timeout | 整数 | 在 fork 后尝试克隆的最大总超时时间 |
authentication | 映射 - 见下文 | 每个服务的认证(通常是用户名 + 密码) |
认证是一个服务(目前仅 "github")到用户名和密码的映射。对于 GitHub,您可以使用具有 "repo" 权限的个人访问令牌(推荐这样做),而不是实际密码。这样,它只有有限的权限,并且可以轻松撤销。
示例配置
organization: myOrg
track_upstream: false
setup_upstream: true
remote_name: my-upstream
origin_protocol: SSH
upstream_protocol: HTTPS
default_service: github
quiet: true
fork_timeout: 30
authentication:
github:
username: ExampleUser
password: efbfd4e43d8e77c1dc24... # personal access token
常见问题解答
当我使用 ghcl 时,在 "克隆仓库..." 后会冻结
这很可能意味着您的 SSH 代理配置错误。我不确定为什么会导致冻结,但为了修复它,请运行 ssh-add ~/.ssh/id_rsa
,或您的 GitHub SSH 密钥是什么。您还应该将其放入您的 .profile
或您启动 ssh-agent
的任何地方。
这个程序不适合我的工作流程!
这个程序有偏见,并不是为了适应每个工作流程。然而,如果您只是缺少一个小选项,请随时创建一个问题或拉取请求。
依赖项
~31–45MB
~822K SLoC