• Git批量修改提交历史


        有些时候我们可能需要批量修改提交历史,当然了,最近一次的提交历史很简单我们可以利用

    git commit --amend

    来进行最近一次提交的修改,如果你此时想要更新作者提交时间等也可以在amend之后加上 --date="$(date -R)"

       但是很多时候我们需要更改的往往不是一条两条提交信息,有些时候需要批量更改提交历史,这个时候我们就可以用到git rebase -i(--interactive)这个选项了。

        首先第一步,你需要确定你需要更改历史的范围,比如A-B-C-D,你此时HEAD在D,你想修改B和C的历史,那这个时候你需要用到如下命令

    git rebase --i HEAD~2

    这个时候,Git会弹出一个对话框里面会写如下提示,例如

    pick 54d5ef0 test2
    pick 63d5ef0 test1

    默认情况下的pick表示此时你认同这段提交,里面可以更改的选项有edit(e),reword(r)等,其中最重要的两个就是这个,前者表示你可以修改提交历史乃至进行相关文件的state区的修改,类似git commit --amend,后者比前者稍微弱一点,仅仅让你改写提交信息,这里面你可以自己作为判断。

        举个简单的例子,比如我们想更改B,C,D的作者时间,我们可以依次输入以下命令

    git rebase -i HEAD~2
    
    # 将A,B,C对应的pick修改为edit之后
    
    git commit --amend --date="$(date -R)"
    
    git rebase --continue


    依次输入直到B,C,D都满足之后,这个时候你再查看git log,你会发现Git的作者历史时间已经被你批量修改成功了。

        希望这篇文章可以帮到你,领略和学习Git的强大之处~

    参考链接:  http://stackoverflow.com/questions/454734/how-can-one-change-the-timestamp-of-an-old-commit-in-git

                     http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_cn/ch05.html

                     http://bbs.csdn.net/topics/380207612

                  http://blog.csdn.net/transformer_han/article/details/7082767

  • 相关阅读:
    辅助方法、模型、视图数据
    HTML.Label
    HTML辅助方法
    ViewBag与ViewData
    ASP.NET MVC4 View 指定视图
    ASP.NET MVC4 配置逻辑
    大部分基于MVC的Web框架所使用的一些基本原则
    MVC内置的验证属性
    高德地图多点标记自定义地图
    关于数组的去重
  • 原文地址:https://www.cnblogs.com/rickyk/p/3981083.html
Copyright © 2020-2023  润新知