Subversion 用户眼中的 Git (8): SVN没有后悔药,git有好多
来源:互联网 发布:自学西班牙语 知乎 编辑:程序博客网 时间:2024/04/30 01:23
Subversion 没有后悔药,就是说一旦完成向服务器的数据提交,就没有办法再追回(从客户端),只能在后续的提交中修正——回退或者修改等。 Git 非常神奇,拥有无数颗粒后悔药… 为什么Subversion 没有后悔药,而 Git 拥有呢。因为 Subversion 作为集中式的版本控制,不能允许个人对已提交的数据进行篡改,而Git 是分布式版本控制系统,代码库是属于个人,允许任意修改。Git 通过对提交建立数字摘要来保证提交的唯一性和不可更改性,通过版本库在多人之间的多份拷贝保障数据的安全性。
Git 丢弃最新的一个或几个提交
使用 git reset –hard 命令可以永远丢弃最新的一个或者几个提交。- 丢弃最新的一个提交:
$ git reset --hard HEAD^
- 丢弃最新的两个提交:
$ git reset --hard HEAD^^
- 丢弃某一提交之后的改动
$ git reset --hard COMMIT-ID
Git 和 Subversion 修改提交说明
提交后如果对提交说明不满意,Git 可以使用命令 git commit –amend 修改提交说明。 Subversion 也可以修改提交说明,是通过修改提交的 svn:log 版本属性实现的:- 不但可以修改最后一次提交的说明,并且可以修改历史提交的提交说明;
- Subversion 修改提交说明是不可逆的操作,可能会造成提交说明被恶意修改;
- Subversion 缺省关闭修改提交说明的功能。管理员在设置了提交说明更改的邮件通知后,才可以打开该功能
- Git 可以修改最后一次提交说明,并不是说不能修改历史版本的提交说明,只是修改最后一个版本提交说明拥有最简单的命令
- Git 修改提交说明,会改变提交的 commit-id。即修改提交说明后,将产生一个新的提交
- Git 可以通过
git reset --hard
,git commit --amend
,git rebase onto
等命令来实现对历史提交的修改 - 使用 stg 工具可以更为简单的修改历史提交的提交说明,包括提交的内容
Git 可以修改和重构历史提交
使用 Git 本身的 reset 以及 rebase 命令可以修改或者重整/重构历史提交,非常灵活。 使用强大的 stg 可以使得历史提交的重构更为简洁,如果您对 stg 或者 Hg/MQ 熟悉的话。Subversion 修改历史提交,只能由管理员完成
Subversion 是集中式版本控制系统,从客户端一旦完成提交,就没有办法从客户端撤销提交。但是管理员可以在服务器端完成提交的撤销和修改,但是操作过程和代价较大。 Subversion 对提交撤销和提交重构是通过 svnadmin dump, svndump filter, svnadmin load 实现的版本库整理。- Subversion 用户眼中的 Git (8): SVN没有后悔药,git有好多
- Subversion 用户眼中的 Git
- Subversion 用户眼中的 Git (5): 没有部分检出
- Subversion 用户眼中的 Git (6): stage
- Subversion 用户眼中的 Git (1): 集中式 vs 分布式
- Subversion 用户眼中的 Git (3): 命令集不兼容
- Subversion 用户眼中的 Git (9): 单亲 VS 多亲
- Subversion 用户眼中的 Git (10): Git 命令行的人性化设计
- Subversion 用户眼中的 Git (7): 完全不同的分支和里程碑的实现
- Subversion 用户眼中的 Git (2): 版本库, 工作区如影随形
- Subversion 用户眼中的 Git (4): 全局版本号和全球版本号
- git常见后悔药
- Git中的各种后悔药
- IntelliJ Idea的SVN管理中有Git提交无Subversion提交
- intellij中有没有关于 svn的插件 Subversion
- git和svn(Subversion)的一些区别
- git学习心得之2--糟糕操作后的后悔药
- ubuntu git svn 缺少 subversion-perl
- Subversion 用户眼中的 Git (4): 全局版本号和全球版本号
- Subversion 用户眼中的 Git (5): 没有部分检出
- Subversion 用户眼中的 Git (6): stage
- 第六章-Oracle ADF Business Component
- Subversion 用户眼中的 Git (7): 完全不同的分支和里程碑的实现
- Subversion 用户眼中的 Git (8): SVN没有后悔药,git有好多
- Subversion 用户眼中的 Git (9): 单亲 VS 多亲
- Subversion 用户眼中的 Git (10): Git 命令行的人性化设计
- 完整链表
- 第七章-ADF Business Rules Definiens
- [转]Qt集成到VS2010中
- Working with xdc.runtime
- android中去掉标题栏和状态栏,实现全屏
- Android QQ皮肤制作 apk之间资源共享