初始化仓库
初始化版本控制
这是我们开始使用 hj
的第一步!运行:
hj init
这会在当前目录下启动版本控制。此时当前目录多了一个隐藏目录 .jj
,包含了所有的版本管理信息。
默认主分支
对于熟悉 git 的用户
默认主分支与 git 完全对应。在 git 中,可以使用 git config --global init.defaultBranch main
来设置默认的主分支名。
特别地,git 在无任何提交时,很多操作会有异常表现,HEAD 也指向一个尚未存在的分支引用。而 jj 有一个自带的根提交,规避了这个问题。
对于熟悉 jj 的用户
jj 中并不重视分支,也不存在默认的主分支。为了保持良好的一致性,hj 在初始化仓库时即为用户自动创建一个默认分支,内部调用命令:
jj bookmark set main
初始化仓库时,还将自动创建一个默认分支,名为 main
。你可以在配置中覆盖这个默认分支名。
新建 GitHub 仓库
在初始化本地仓库时,也可选择为自己创建一个 GitHub 远程仓库:
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 管理的仓库:
hj init --git
打开项目
你可以随时使用:
hj open
来使用默认的编辑器打开这个项目。这个命令的好处是它在 当前工作目录 为 一个项目的子目录 时,依然打开的是项目的根目录。
另外,你可以使用:
hj open REMOTE # 默认的远程名是 origin
来使用默认的浏览器打开远程仓库的网页地址。