在GIT中修改提交记录
2014-02-08 18:17
323 查看
在SVN中,提交记录是无法修改的。比如说,当我们提交了某次修改后,发现该次提交中有错误时,只能将将补丁再次提交一遍。这样,就存在两次提交记录,没有保证提交的原子性。
在GIT中,由于提交是在本地进行的,因此如果没有发布之前,是允许使用reset命令来撤销提交记录的,这个命令有如下三种使用方式:
git reset -soft: 只撤销commit,保留working tree和index file。
git reset -mixed: 撤销commit和index file,保留working tree
git reset -hard: 撤销commit、index file和working tree,即撤销销毁最近一次的commit
默认是-mixed,不过我没有看出来mixed和soft有什么区别,都是把日志历史给reset了,内容保持不变。而hard则是把日志连同内容一起回退了,类似于回滚。
日志可以reset的好处是:可以随时commit,这样就不用担心后面的修改影响到前面,commit日志也可以不用填得很规范。每完成一个迭代后,再把之前的所有commit全部给reset掉,重新写一个能正规的注释,发布到服务器。
修改已经发布的修改
如果你的提交已经发布,reset后发布时会将服务器上的提交记录给同步下来,进行一次merge后再次发布。此时就GIT的工作方式是和SVN一样的了。此时,如果要修改服务器段的提交记录,则可以使用使用了园子里的一篇文章:Git如何永久删除文件(包括历史记录)中介绍的强制推送的命令:
git push origin master --force
先reset,本地提交后,用该命令强制发布,此时服务器的提交记录就会被被本地提交记录覆盖。
需要注意的是:修改已经发布的提交是有很大的有风险的,会导致无法回退到历史版本。这也是SVN不允许修改提交记录的原因。虽然GIT提供了这个命令,但不到万不得已的时候不建议使用它。
在GIT中,由于提交是在本地进行的,因此如果没有发布之前,是允许使用reset命令来撤销提交记录的,这个命令有如下三种使用方式:
git reset -soft: 只撤销commit,保留working tree和index file。
git reset -mixed: 撤销commit和index file,保留working tree
git reset -hard: 撤销commit、index file和working tree,即撤销销毁最近一次的commit
默认是-mixed,不过我没有看出来mixed和soft有什么区别,都是把日志历史给reset了,内容保持不变。而hard则是把日志连同内容一起回退了,类似于回滚。
日志可以reset的好处是:可以随时commit,这样就不用担心后面的修改影响到前面,commit日志也可以不用填得很规范。每完成一个迭代后,再把之前的所有commit全部给reset掉,重新写一个能正规的注释,发布到服务器。
修改已经发布的修改
如果你的提交已经发布,reset后发布时会将服务器上的提交记录给同步下来,进行一次merge后再次发布。此时就GIT的工作方式是和SVN一样的了。此时,如果要修改服务器段的提交记录,则可以使用使用了园子里的一篇文章:Git如何永久删除文件(包括历史记录)中介绍的强制推送的命令:
git push origin master --force
先reset,本地提交后,用该命令强制发布,此时服务器的提交记录就会被被本地提交记录覆盖。
需要注意的是:修改已经发布的提交是有很大的有风险的,会导致无法回退到历史版本。这也是SVN不允许修改提交记录的原因。虽然GIT提供了这个命令,但不到万不得已的时候不建议使用它。
相关文章推荐
- git_修改git历史提交记录
- 2.Git(忽略添加&(查看&撤销修改)&查看提交记录)
- Git查看某一个文件的修改记录(提交记录)
- git修改已提交记录的注释
- git 查看某一个文件的(提交/修改)记录
- Git 文件的修改提交与历史记录查看(02)
- Git: 修改提交记录
- git学习------>如何修改git已提交的记录中的Author和Email?
- 使用git命令修改指定的commit提交记录并提交到远程服务器的方法
- git修改提交代码时记录的作者信息
- git 查看某个文件下的某个commit的修改记录
- git恢复repo start 后丢失的修改记录
- git工程迁移(修改提交服务器地址)方法
- 修改git账号和提交的邮箱和用户名
- 1001.A+B Format (20)(思路,bug发现及其修改,提交记录)
- git还原本地提交的某个历史记录
- GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
- git修改提交作者和邮箱
- Git(PART I)创建版本库和提交修改
- 将一个项目修改记录提交另外一个项目-> patch获取提交记录,repo 提交代码