Mercurial思想研读系列文章——4. 常用命令
?
随win下可以用可视化的乌龟系列完成所有的版本控制操作,但是学习下命令也是有帮助的,而且GUI也只是这些命令而已了,说不定明天的项目就跑到linux中了。
这里仅介绍一些基本的命令和使用。
?
1. log
查看仓库的历史记录
?
-v的输出比缺省输出要多。
?
changeset 给出不缩略的改变集标号。
files 列出在本改变集中文件的改变。
description 包含了改变集的完整多行描述而不仅是头一行。
在我们例子中,描述都只有一行,所以没什么特别不同的地方。
--debug 给谓词输出添加了以下方面:
?
file+ 列出了在此改变集中增加的文件。
file- 列出了在此改变集中删除的文件。
manifest 给这个改变集一个 Manifest 号。
两个 parent 域给这个改变集的两个父辈号码, -1:0000000000000000000000000000000000000000 表示没有父改变集。
log 命令与 -r 选项一起使用可以查看特定改变集。
?
log 命令与 -p 选项一起可以显示和此改变集相关联的补丁。
?
注意:?写高质量的提交日志
因为hg log命令在缺省情况下仅会输出提交日志的第一行,所以日志第一行最好是单独的
一行。下面是一个日志的实例,它没有遵守这个规则,因此摘要可读性很差。
?
tip 命令来显示 tip 的信息,如最后的改变集。 tip 命令除了不支持 -p 选项外,它可以当做 log -r tip 的快捷方式
-q(保持安静,不要输出Tip的完整描述)
?
2. 变更相关
2.1 status 查看状态 结果中M表示修改
2.2 diff ? 查看文件实际的改变
2.3 revert (-all)恢复文件,如hg revert hello.c
revert重命名被编辑文件hello.c为hello.c.orig并恢复hello.c到它的未编辑状态。 status命令现在会将hello.c.orig视为不被追踪的(以"?"为前缀)。
当希望再次使用修改时可以使用orig文件替换原有文件,
2.4 commit提交到本地本仓库
2.5 par命令向我们展示我们的仓库的工作路径现在与新提交的变更集同步了?
?
3.pull和push是仓库间的共享,可以指定名称,可以再本地的仓库之间共享。读了实现机制可以很容易想到只是pull还是不行的,这里需要做一次update;
update可能会发现冲突,可以启动merge。
Mercurial 使用了三路合并。 这就意味着有三个文件来做合并,分别是:
本地文件(当前仓库)
其它文件(正在被合并的仓库)
基文件 (在分支分开前的最后一个版本)
?
4.export导出改变必须提供一个tag,到处后可以import来分享改变。