git revert && svn revert的不同

最近在看git,注意到revert命令,不禁想起svn的revert。于是把两者的功能进行了对比,以加深命令的理解。

git revert

对应的中文术语叫反转提交,基本的用法:

git revert commit-ish

该命令运行后会新加一个提交,该提交的内容即commit-ish所指向提交的父提交,此时版本库的内容“回退”到之前的某个版本。注意在运行本命令前,当前工作区不能有未提交的改动。

svn revert

svn中revert即回滚,基本用法

svn revert PATH

其中PATH可以是单个文件,也可以是文件夹。如果是文件夹的话,就需要用-R参数,表示递归执行。执行完命令后,本地文件的所有修改都被放弃,所以此时执行时不需要联网。

svn实现git revert的功能

如果要向用svn实现git revert的功能那么就需要:

svn update
//确保版本库最新
svn log
//找到想要“回复”的版本号
svn merge -r currentID:revertID PATH
//回滚到revertID所代表的版本
svn commit -m "message"
//确认后提交