Mercurial使用笔记(3)

记录使用Mercurial中遇到的问题和疑惑(3)

命令: – 出错不就命令

hg revert

hg revert(回复, 使回复原状)
有两种用途:
1. hg revert . // 最常用的revert命令,”.”表示当前working copy中的所有修改。如果只想revert某个文件,把”.”换成文件路径即可, 删除working copy中所有修改。revert之后,会在被revert文件旁边创建备份文件,后缀名是.orig,所以可以放心大胆的revert,不用害怕修改找不回来。 引用:http://anotherwayaround.blog.163.com/blog/static/1900662202012326104313552/
这里的用途用于清除working copy中某个(多个)文件的更改
2. hg revert -r 12345 –all // revert版本12345之后所有的修改,注:版本12345本身的修改不会被revert。引用:http://anotherwayaround.blog.163.com/blog/static/1900662202012326104313552/

hg revert -r xx [file] # Restores the working copy to the revision xx state

**注:这里的用途是把working copy中的某个(多个)文件从local repo回退到一个特定版本,但是不包含xx版本,就是回退到xx版本的下一个版本。我自己感觉把这说成回退到某个版本更加容易理解。这时文件的内容就是xx版本的内容。 回退之后,我们就可以重新提交我们的内容,这可以处理我们提交了,但是发现有问题,这样我们就可以回退,修改后重新提交。
但是这里有一点需要注意:这个功能不是单独去掉某一个版本的改动,而是去掉了那个版本之后所有版本的改动,如果以后已经提交了很多个版本,那么这个功能就不太实用了
还有一点需要注意:这里的回退只会影响到working copy,如果不提交是不会影响local repo和remote repo**

hg rollback

roll back the last transaction (DANGEROUS危险动作) (DEPRECATED)
把local repo最新一个版本的提交的内容返回working copy,我们可以修改后重新提交。
撤销最后一次提交, 前提是你还没有把它推送 (push) 给其他人

hg backout(撤销)

有时你可能会发现, 早在几个月前, 你犯了个错误:
Mercurial 能够帮助你拆除 (backout) 早些时候的变更集. 它会分析变更集, 得出 反向变更集, 并应用于你当前的工作目录. 让我们试着拆除 2 号历史版本.
这类问题很可能会导致本次变更无法合并. 这种情况下, 你得手工解决合并冲突.
引用:http://bucunzai.net/hginit/fixing/#hg-backout

这里跟上面的revert命令有很大的区别,backout这个命令,是单独撤销某个版本的改动,这个命令不会影响后面提交的版本,包括同一个文件的提交,这样我们就可以用这个命令单独去掉某个版本改动,而不用直接回退到某个版本,因为这个命令保留了后续版本的更改,所以很容易导致冲突,需要手动去解决冲突。

你可能感兴趣的:(工具)