Chinaunix首页 | 论坛 | 博客
  • 博客访问: 267004
  • 博文数量: 74
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 668
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-09 17:34
文章分类

全部博文(74)

文章存档

2017年(1)

2016年(13)

2015年(24)

2014年(9)

2013年(27)

我的朋友

分类: Android平台

2014-01-20 14:25:42

有时commit太多,而且可能一个commit只是提交一个小bug,那么合并commit势在必行。
有两种方法:
一是在提交最后一个修改的commit使用参数,这时之前的一个commit将会合并到这个即将提交的commit中来:
git commit -a --amend -m "my message here"
如果之前有一个提交,并且信息为:

git commit -a -m "my last commit message"

则这个commit message将不存在。但该commit的信息已经合并到"my message here"中了。

第二个是,如果你提交了最后的修改,这时可用:

$ git reset --soft HEAD^ #或HEAD^意为取消最后commit $ git commit --amend

这将会把最后一个commit合并到前一个提交中去,例如(由上往下读):

git add b.text

git commit -a -m "my message here" git add a.text git commit -a -m "my last commit message"

那么最后存在的将是"my last commit message"。也可后退n个,合并到前面第n+1个commit中去:

$ git reset --soft HEAD~n #后退到第n,我也不清楚具体含义。 $ git commit --amend [-m "new message"]

我觉得最方面的是调用reflog查看操作历史,找到具体的commit id,然后直接git reset --hard [commit_id]就回到你要的版本!

转自:http://sumsung753.blog.163.com/blog/static/146364501201312514427364/
阅读(760) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~