
Linux hg 命令
hg 是 Mercurial 分布式版本控制系统的核心命令行工具。Mercurial 是一个由 Python 编写的轻量级分布式版本控制系统,其设计简洁,功能上与 Git 类似。
hg 基本概念
版本控制系统概述
版本控制系统(VCS)用于记录文件的变更历史,并支持多人协作开发。主要分为集中式(如 SVN)和分布式(如 Git、Mercurial)两种类型。
分布式与集中式的区别
- 分布式:每个开发者都拥有完整的仓库及其历史记录
- 集中式:所有历史记录仅存储在单一中央仓库中
Mercurial 的优势
- 命令简单易懂
- 高效处理大型项目
- 支持跨平台运行
- 提供可扩展的插件机制
hg 安装与配置
安装方式
示例
# Ubuntu/Debian
sudo apt-get install mercurial
# CentOS/RHEL
sudo yum install mercurial
# macOS (使用 Homebrew)
brew install mercurial
初始配置
编辑 ~/.hgrc 文件:
篇文章是针对git版本控制和工作流的总结,如果有些朋友之前还没使用过git,对git的基本概念和命令不是很熟悉,可以从以下基本教程入手: Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统虽然能够令多个团队成员一起协作开发,但有时如果中央服务器宕机的话,谁也无法在宕机期间提交更新和协同开发。甚至有时,中央服务器磁盘故障,恰巧又没有做备份或备份没及时,那就可能有丢失数据的风险。感兴趣的朋友可以过来看看
示例
[ui]
username = Your Name
hg 常用命令详解
仓库操作
示例
# 初始化新仓库
hg init 项目名
# 克隆远程仓库
hg clone https://www.php.cn/link/bfb92b9b1532b06eb59b21fb4b3a9dd6
文件管理
示例
# 添加文件至版本控制
hg add 文件名
# 查看当前状态
hg status
# 提交更改
hg commit -m "提交说明"
分支操作
示例
# 创建新分支
hg branch 分支名
# 切换分支
hg update 分支名
# 查看所有分支信息
hg branches
查看历史记录
示例
# 显示提交历史
hg log
# 查看特定文件的修改记录
hg log 文件名
# 查看具体改动内容
hg diff
远程仓库交互
示例
# 获取远程更新
hg pull
# 推送本地提交
hg push
# 查看远程仓库地址
hg paths
hg 高级功能
撤销操作
示例
# 撤销对工作目录中的修改
hg revert 文件名
# 回退到指定版本
hg update -r 版本号
分支合并
示例
# 合并其他分支内容到当前分支
hg merge 分支名
# 标记冲突已解决
hg resolve -m 文件名
标签管理
示例
# 创建标签
hg tag 标签名
# 查看已有标签
hg tags
hg 与 Git 对比
| 特性 | hg (Mercurial) | Git |
|---|---|---|
| 学习难度 | 较容易掌握 | 相对复杂 |
| 命令结构 | 更加统一 | 更灵活多样 |
| 分支机制 | 命名分支 | 轻量级分支 |
| Windows 支持 | 原生良好 | 需 Git Bash |
| 插件生态 | 丰富强大 | 同样强大 |
实际使用案例
示例一:初始化新项目
示例
# 1. 创建项目目录
mkdir myproject
cd myproject
# 2. 初始化仓库
hg init
# 3. 新建文件并加入版本控制
echo "Hello World" > README.txt
hg add README.txt
# 4. 提交初始版本
hg commit -m "Initial commit"
示例二:团队协作流程
示例
# 1. 克隆远程仓库
hg clone https://www.php.cn/link/f7620fbc20ce5ea030e60b8c6f96a346
# 2. 创建功能分支
hg branch feature-x
hg commit -m "Start feature X"
# 3. 完成开发后推送
hg push --new-branch
# 4. 其他成员同步更新
hg pull
hg update feature-x
常见问题处理
问题一:错误提交如何处理
示例
# 撤销最后一次提交
hg rollback
# 或者反向撤销某个提交
hg backout 错误提交ID
问题二:解决合并冲突
- 冲突文件会标记出冲突区域
- 手动编辑解决冲突
- 标记为已解决
- 提交合并结果
示例
hg resolve -m 冲突文件
hg commit -m "Merge conflict resolved"
问题三:恢复被删除的文件
示例
# 查看删除记录
hg log --removed
# 恢复特定版本的文件
hg revert -r 版本号 文件名
最佳实践指南
- 频繁提交:每次提交保持小范围改动,确保原子性
- 清晰日志:提交信息要准确描述更改内容
- 合理分支策略:区分长期分支(开发、发布)与短期功能分支
- 及时同步:定期执行拉取与推送操作
- 备份关键分支:将重要分支推送到远程仓库
推荐学习资源
- 官方文档:https://www.php.cn/link/0bdfa70fd4894b47e136ae023e2db7c2
- 《Mercurial: The Definitive Guide》电子书
- hg 自带帮助:
hg help或hg help 命令名 - 在线教程:https://www.php.cn/link/762f942f9ebc76e485a774e4bea7f4de
熟练掌握 hg 命令有助于你高效进行版本管理和团队协作。尽管 Git 更加流行,但 Mercurial 的简洁架构使其在某些场景下仍是一个理想选择。









