Chinaunix首页 | 论坛 | 博客
  • 博客访问: 804128
  • 博文数量: 106
  • 博客积分: 1250
  • 博客等级: 少尉
  • 技术积分: 1349
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-09 09:38
文章分类

全部博文(106)

文章存档

2014年(1)

2013年(13)

2012年(92)

分类: LINUX

2012-12-17 12:51:45

在日常工作中GIT的使用会遇到各种问题,现将使用过程中的问题总结一下:
1. 使Git Commit线性增长
在使用Git的过程中,如果使用git merge操作后,再通过Gitk --all查看log记录会发现commit信息多出了岔路。
首先看目前我仓储中的所有branch上的commit.

如图所示:checkpoint2上有一个提交,checkpoint1上有2个提交。现在想把checkpoint2上的提交merge到checkpoint1上。

$ git checkout checkpoint1
$ git merge checkpoint2
$ gitk --all


如上图所示: checkpoint1有两个父提交,即从master后走了分叉路。如果提交checkpoint1这个commit到服务器的话,服务器也会出现类似的问题。在这样的commit log信息以后查阅的时候杂乱无章。
可以通过以下的方式操作.

$ git checkout checkpoint1
$ git log checkpoint2
$ git cherry-pick e1d2aec274915cb2f1e3418f8061079d2c31982e

这样checkpoint2上的提交就被放到了checkpoint1的最上方. 对于checkpoint1上的提交达到了线性增长的效果.此时branch checkpoint2对于我们来说就可以删除了.如图所示

2. git rebase
当我们在某个仓储修改完代码并commit后,就需要push到远端服务器了。可是如果有别人提交了代码,会导致push操作失败的。这是可以使用git rebase操作。 达到的效果就是别人的commit会插入到你本地的commit的下方,即commit线性增长

$ git rebase -i korg/aster
$ git log

阅读(2235) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~