1.提交文件之前先pull
Hg pull
Hg pull -r 版本号:更新到指定版本
2.查看本地文件状态:
Hg st
3.将本地文件加入版本控制
Hg add + 文件
4.提交单个文件:
hg commit + 文件
5.merge merge到指定版本:
Hg merge +版本号
6.查看hg分支
Hg heads
7.解决冲突
Hg resolve + 文件名
Hg reslve -m + 文件名
8.更新文件
Hg update
9.恢复文件到上次提交时的状态
9.1恢复单个文件
Hg revert + 文件名
9.2恢复所有
Hg revert --all
10.推送本地文件到版本管理服务器
Hg push
11.删除本地仓库存在,但是本地文件已经删除的文件(感叹号!标示的文件)
Hg remove --after
hg 基本流程
从远程仓库复制到本地
https 协议从远程仓库获取代码:
hg clone https://bitbucket.org/z42/z42
或者也可以通过 ssh 协议:
hg clone ssh://hg@bitbucket.org/z42/z42
添加新创建的文件:
hg add file_name
修改本地代码并提交
保存修改后,提交本地代码::
hg commit -m "change log"
或者也可以简写为::
hg ci -m "change log"
-m 表示关于本次提交的相关信息
commit 时 hg 会自动 add 代码库中已修改的文件。
提交到远程仓库前,首先检查远程代码状态
可以使用 hg diff branches 查看不同分支间差异
使用 hg fetch 命令从其它分支拉取代码并合并,如合并代码出现问题, 需要手动合并后再提交。
将代码提交到远程仓库:
hg push
发起 pull request
在 https://bitbucket.org/你的用户名/项目名/pull-request/new 发起一个新的 pull request
解决冲突
在 fetch 他人代码的时候,时常会遇到合并冲突的问题,因为有可能两人同时修改了同一个文件,这时需要先解决冲突(直接修改有冲突的文件),解决冲突后将其标注为已解决:
hg resolve -m file.name
Tips
向版本库添加/删除文件 hg add/rm
移动版本库中的文件 hg mv
查找某段代码的责任人 hg blame
从现有代码初始化版本仓库 hg init
建立 hg 服务器 hg serve
更新代码库至最新提交 hg update
切换至分支 hg update -r
放弃所有修改,返回至上一个提交 hg update -C
搜索 hg grep
放弃某个文件的修改 hg revert
分支命名规则
命名示例: * bug/index_page * feature/founder_page
分支的目的如果是 bug 修复以 bug/ 作为开头;同理,新需求则以 feature/ 开头。这样能够明显地区分需求与 bug,并且以 / 为分隔符能够得到 SourceTree 这样的图形化版本控制工具更好的支持。
分支名中不需要添加创建者,因为一个分支通常会有多个开发者(一个前端一个后端)同时使用。
配置 Hg 记住密码功能
通过 Hg HTTP 协议操作项目时,往往需要重复输入密码,不像 ssh 方式便捷,可以通过插件实现 Hg 记住密码功能:
pip install mercurial_keyring
在 hgrc 文件后写入:
[extensions]
mercurial_keyring =