分类: 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