不同git分支的合并方法



背景:

一开始我下了freescale的soure code在本地开发,假设Commit为A,过来一段时间后才开始基于Commit A创建git server,
而期间我已经基于Commit A添加了Commit B, Commit C, Commit D.
这样如果既要添加改动,又要保留Commit B/C/D的commit log,那么该如何做呢,当然再重复添加一次肯定是可以的,不过如果
改动多的话会很麻烦,而且又容易出错。我们可以利用branch合并来完成此任务。



下面例子演示实现:

以commit log为test这笔需要添加的commit为例,当前branch为tmp, 飞思卡尔的commit是前面那一笔。

1. 生成commit



注意这句: scp -p -P 29418 [email protected]:hooks/commit-msg .git/hooks/

在push到gerrit的时候,gerrit会检查当前commit有没有change id,如果没有是不允许你push,出现如下error log:

....

remote: ERROR: missing Change-Id in commit message footer

.....

这条命令作用是从我们服务器上copy脚本到当前git下,以后每笔commit 就会自动添加change id了。

之前我就忘了添加change id而吃了好大亏,导致后面每笔commit都要重新添加而不能一次性提交。


2. 获取远程仓库


将远程仓库抓下来,命名为pb,这样远程仓库的内容也在本地了,因此test前面那一笔的commit就是pb的最新一笔commit,所以接下来可以直接push了。

如果不是,则先需要合并。


3. 合并




参考:

http://blog.csdn.net/wangjia55/article/details/8802490

http://blog.sina.com.cn/s/blog_4b5039210102e5o5.html


你可能感兴趣的:(git,remote)