Skip to content

初始化仓库

初始化版本控制

这是我们开始使用 hj 的第一步!运行:

sh
hj init

这会在当前目录下启动版本控制。此时当前目录多了一个隐藏目录 .jj,包含了所有的版本管理信息。

默认主分支

对于熟悉 git 的用户

默认主分支与 git 完全对应。在 git 中,可以使用 git config --global init.defaultBranch main 来设置默认的主分支名。

特别地,git 在无任何提交时,很多操作会有异常表现,HEAD 也指向一个尚未存在的分支引用。而 jj 有一个自带的根提交,规避了这个问题。

对于熟悉 jj 的用户

jj 中并不重视分支,也不存在默认的主分支。为了保持良好的一致性,hj 在初始化仓库时即为用户自动创建一个默认分支,内部调用命令:

sh
jj bookmark set main

初始化仓库时,还将自动创建一个默认分支,名为 main。你可以在配置中覆盖这个默认分支名。

新建 GitHub 仓库

在初始化本地仓库时,也可选择为自己创建一个 GitHub 远程仓库:

sh
hj init --github

这将调用本地的命令行工具 gh 来创建一个新的 GitHub 仓库,并将其设置为远程名为 origin 的仓库。仓库默认以 当前目录名 命名,并为公开仓库(可以额外传递参数 --private 来创建私有仓库)。

TIP

使用此功能时必须确保已经安装 gh 工具、并且使 gh 登录到 GitHub。可以使用 gh auth login 命令以多种方式登录。

我们的 hj 足够聪明!一旦你使用 --github 创建了一个远程仓库,它会自动将远程地址关联到本地仓库。


与 Git 仓库共存

对于熟悉 jj 的用户

如果你是 jj 的老用户,你应该非常清楚 jj 目前的明确限制:缺乏命令行工具和 IDE 支持。你可以通过 jj 的 --colocate 参数来实现共存,我们在 hj 中也为你提供了。

目前 共存 存在 已知限制

我们的 hj 以项目 jj-vcs 为依赖,它被设计得与 Git 远程(如 GitHub、GitLab)完全兼容。然而一些本地的命令行工具、IDE 可能只识别 .git 仓库,这种情况下你可以传递 --git 参数来创建一个 同时 还被 Git 管理的仓库:

sh
hj init --git

打开项目

你可以随时使用:

sh
hj open

来使用默认的编辑器打开这个项目。这个命令的好处是它在 当前工作目录 为 一个项目的子目录 时,依然打开的是项目的根目录。

另外,你可以使用:

sh
hj open REMOTE   # 默认的远程名是 origin

来使用默认的浏览器打开远程仓库的网页地址。