Chinaunix首页 | 论坛 | 博客
  • 博客访问: 322329
  • 博文数量: 41
  • 博客积分: 2540
  • 博客等级: 少校
  • 技术积分: 570
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-18 11:29
文章分类

全部博文(41)

文章存档

2011年(4)

2010年(32)

2009年(3)

2008年(2)

我的朋友

分类: LINUX

2010-12-15 11:59:47

Git使用笔记

在日常工作中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




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

chinaunix网友2010-12-16 14:27:54

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com