今天在公司移植代码打patch,遇到一些问题记录下来,以后注意。
一、公司打patch是为了移植安卓p上打代码到q上,不需要自己打包patch,主要是对比两方面打代码,把每一笔提交原样修改。由于每一笔提交的代码修改量很大,用命令一键搞定是不现实的。需要靠自己手动修改。
二、提交代码时需要提交到gerrit上,大致就是git add ,git commit , git push 三部曲。由于是移植代码,提交commit是需要进行修改打,有两种方法。
(一)、git commit 时进行修改
(二)、git commit --amend进行补充修改
(一)方法只能在push前添加注释,(二)方法在push前后都可以对提交进行补充。后面添加不同参数有不同效果,网上相关文章很多,不一一详述。由于之前一直使用git commit -m来添加注释,居然不知道git commit会进入commit 的文件里,可以直接进行修改,真是惭愧。
三、由于公司有配置jenkins,提到gerrit后就依靠自己在服务器编译版本验证,方便是方便,由于要考虑整个系统的稳定性,只能整编,一次要两个小时,对于验证来说时间还是太长了。遇到冲突问题不能及时解决。还是要在本地单编,尽快找到冲突点,完成一个模块或者一个文件夹,再提jenkins可以提升效率。
四、在一开始提交时发现有内容错误,回退提交,使用的是reset --hard
reset --hard 会在重置 HEAD 和branch的同时,重置stage区和工作目录里的内容。
很悲催,还要重新修改。
应该 reset --soft 这样可以保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区。
修改错误后再次提交就可以减少重复工作量提升效率。
五、冲突的相关代码在gerrit里会有提示,在代码前有 》》 提示此处出错,对比p,q上打代码进行修改。修改没有定招,只能见招拆招。