首页 > 其他 > 详细

Git批量修改提交历史

时间:2014-09-19 13:31:35      阅读:234      评论:0      收藏:0      [点我收藏+]

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

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

Git批量修改提交历史

原文:http://www.cnblogs.com/rickyk/p/3981083.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!