Mercurial 也是一个分布式版本控制系统,主要使用 Python 语言编写的。
其使用化学元素「汞」的元素符号「Hg」小写形式 hg
作为命令。
安装 Mercurial
$ brew install mercurial
修改配置文件 ~/.hgrc
(若无则新增),主要是修改 username
和 email address
。
[ui]
username = frankie <frankie@example.com>
Use
hg config
to configure a user name, email address, editor, and other preferences once per machine.
初始化/克隆仓库
# 初始化
$ hg init
# 克隆远程仓库
$ hg clone <repo-address> [repo-name]
创建分支
# 创建新分支
$ hg branch <branch-name>
# 只有提交一个 commit,新分支才算真正被创建。
# 可提交一个「空」的 commit,比如:hg commit
$ hg commit -m "create '<branch-name>' branch"
# 提交新分支到远程仓库
$ hg push --new-branch
查看/切换分支
# 查看当前分支
$ hg branch
# 查看所有分支
$ hg branches
# 切换分支
$ hg checkout <branch_name>
合并分支、关闭分支
假设有 default
和 feature
分支,将 feature
合并至 default
。操作如下:
# 切换至 feature 分支,然后 Close 当前分支
$ hg checkout feature
$ hg commit -m 'xxx' --close-branch
$ hg push
# 切回 default 分支,然后 Merge feature 分支
$ hg checkout default
$ hg merge feature
$ hg commit -m 'Merge xxx'
$ hg push
我们知道,在 Git 里可以通过 git branch -d <branch-name>
或 git push origin --delete <branch-name>
等方式删除本地分支或远程分支。但 Mercurial 里没有删除分支的概念。
已 Git 为例,在团队协作中,一个仓库应该至少有 Master Branch
和 Develop Branch
分支(称为主干分支),另外还应该有 Feature branches
、Release branches
、Hotfix branches
等常见分支(称为辅助分支)。当辅助分支完成使命后,它们将会被合并到主干分支,然后进行删除。
在 Git 中,有多种方式可以删除分支,那么 Mercurial 里则用「Close」的概率来表示一个分支的结束。如果一个分支该结束了,我们可以提交一个空的 Commit 来关闭它,比如 hg commit -m 'xxx' --close-branch
。重点就是 --close-branch
参数。
代码推送
# 切换至某分支
$ hg checkout <branch-name>
# 推送当前分支至远程仓库。若远程仓库中没有的新分支,则需要加上 --new-branch 参数。
$ hg push
代码拉取与更新
# 拉取代码(类似 git fetch)
$ hg pull
# 拉取代码后,更新本地分支
$ hg update
# 以上等价于
$ hg pull -u
查看提交记录
$ hg log
$ hg log -G # or hg log --graph
更多请看这里。
其他
-
hg status
shows the status of a repository. -
hg add
puts files in the staging area. -
hg commit
saves the staged content as a new commit in the local repository. -
hg log
lists all changes committed to a repository, starting with the most recent.
网友评论