当前位置:  技术问答>linux和unix

关于git修改历史log的问题

    来源: 互联网  发布时间:2017-02-26

    本文导语:  现在有一个git版本库,在一次commit -m操作中描述写错了,后来又基于这个错误的描述commit了很多版本,现在想要修改那条错误的描述而不打乱后面的顺序,该怎么做?请各位指教~谢谢 |    ...

现在有一个git版本库,在一次commit -m操作中描述写错了,后来又基于这个错误的描述commit了很多版本,现在想要修改那条错误的描述而不打乱后面的顺序,该怎么做?请各位指教~谢谢

|
    引自Pro Git中文版6.4 重写历史,略作修改
    Git没有一个修改历史的工具,但是你可以使用rebase工具来衍合一系列的提交到它们原来所在的HEAD上而不是移到新的上。依靠这个交互式的rebase工具,你就可以停留在每一次提交后,如果你想修改或改变说明、增加文件或任何其他事情。你可以通过给git rebase增加-i选项来以交互方式地运行rebase。你必须通过告诉命令衍合到哪次提交,来指明你需要重写的提交的回溯深度。
    例如,你想修改最近三次的提交说明,或者其中任意一次,你必须给git rebase -i提供一个参数,指明你想要修改的提交的父提交,例如HEAD~2或者HEAD~3。可能记住~3更加容易,因为你想修改最近三次提交;但是请记住你事实上所指的是四次提交之前,即你想修改的提交的父提交。
    I. $ git rebase -i HEAD~3
    HEAD~3..HEAD范围内的每一次提交都会被重写,无论你是否修改说明。
    attention:不要涵盖你已经推送到中心服务器的提交——会使其他开发者产生混乱,因为你提供了同样变更的不同版本。
    II. 在输入上边命令后的结果中,将你想修改的每一次提交前面的pick改为edit,保存退出
    III.根据提示,运行
    $ git commit --amend
    修改提交说明,退出编辑器。然后,运行
    $ git rebase --continue
    这个命令会自动应用其他两次提交,你就完成任务了。如果你将更多行的pick 改为
edit ,你就能对你想修改的提交重复这些步骤。Git每次都会停下,让你修正提交,完成后
继续运行。
    你目前的情况只需修改一次即可。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Git 的 Web 接口 Git Manager
  • PHP git仓库控制类包 Git.php
  • linux系统安装git及git常用命令
  • Git 文件系统接口 git-fs
  • git 分支操作可视化展示 explain-git-with-d3
  • JavaScript实现的Git项目 JS-Git
  • node-git
  • git命令行扩展工具 Git Extras
  • git-tfs
  • Git客户端 TortoiseGit
  • git.js
  • 有人熟悉git吗?
  • git 使用的端口号是多少
  • Java的Git管理工具 Gitblit
  • git 查看工具 gitg
  • git-ftp
  • 文本模式的Git浏览器 Tig
  • Git的Java开发包 JGit
  • 请教如何实现git不需要密钥下载
  • 代码管理工具 git-repo


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3