git如何做个人构建
1 基本概念
1.1 Git:Git是一个版本控制的工具,类似于svn。
1.2 Gerrit:Gerrit是一个基于git的团队合作的工具,开发人员可以往上面提交代码,让同行审阅,再将代码入库。
1.3 Repo:Repo是一个管理多个git工程的工具,只能在linux下使用,在windows下,我们使用cygwin来模拟linux环境。
1.4 Jenkins:Jenkins是一个持续集成工具,主要运行编译任务,和打包任务等。
2 步骤
2.1 使用repo命令将Gerrit上的代码拉到本地。
- 新建一个空目录作为你的工作目录
- 在空目录下使用repo init命令来初始化,初始化后会生产.repo目录
repo init -u http://10.22.112.116:8080/repo/manifest -b dev_r6c20 -m ssh.xml --no-repo-verify
- 使用repo sync命令来拉取代码,第一次较为耗时,大概需要几分钟。
repo sync
2.2 使用repo命令为每个git工程创建本地的个人分支(个人分支名为用户名,比如w00418504)
- 使用git checkout命令创建本地分支,上流分支是dev分支
repo forall -j 4 -c "pwd && git checkout -b privatebuild/{username} origin/privatebuild/{username}"
2.3 修改你想修改的文件,并作出本地的commit。
- 修改你想修改的本地文件,并作出本地的commit到本地的个人分支上。
- 使用repo forall -j 4 -c "git fetch --prune"
2.4 使用repo命令同步远程的dev分支和本地的个人分支的代码。
Git fetch是将远程的git工程的修改拉倒本地缓存,但是不做同步。
- 使用repo forall -j 4 -c "git merge --ff-only origin/dev_r6c20 || git rebase origin/dev_r6c20"
Git merge -ff-only对于远程和本地没有同时修改的git工程可以做快速的同步,对于本地和远程都有修改的git工程会返回一个错误码,如果返回错误码,则调用git rebase可以同步本地和远程的代码。
2.5 使用repo命令将本地的个人分支推送到远程的个人分支
- 使用repo forall -j 4 -c "git push origin privatebuild/{username}:privatebuild/{username}"
Git push将本地的个人分支推送到远端的个人分支,如果远端不存在个人分支,则在远端创建个人分支;如果远端已经存在个人分支,则更新远端的个人分支。
建议使用强制同步: repo forall -j 4 -c "git.exe push --force-with-lease --progress origin localName:privatebuild/userName"
localName:在代码目录中右键,选择”Git Bash Here”,然后输入git branch,获取命令输出结果.
username:即为远端上创建的个人分支
2.6 使用jenkins页面启动需要的构建任务
- 通过http://10.93.96.164:8080/jenkins登录jenkins页面,点击PrivateBuildView。
- 选择需要编译的任务,比如Compile_Agent_Audio。
- 点击Build with parameter,见上图的红框。
- 在private_build_branch中输入自己的个人分支名字,如privatebuild/w00418504,然后点击“开始构建”进行个人构建。
3 注意事项
3.1 个人分支的同步问题
每个开发人员都有责任维护自己的个人分支与dev分支的同步问题,并维护好每个git工程中的本地的和远端的个人分支。另外除了个人分支,不要直接修改其他分支。
git如何做个人构建的更多相关文章
- 根据学习廖雪峰老师的git教程做的笔记
根据学习廖雪峰老师的git教程做的笔记 安装git 进行git的配置 配置您的用户名和邮箱地址,使用--global 这个参数表明了在此台机器上的所有仓库都会使用该配置 $ git config -- ...
- linux服务器中Jenkins集成git、Gradle持续构建Springboot项目
Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...
- [CentOS]使用Jenkins配置Git+Maven的自动化构建
背景 最近安装Jenkins,参照网上的各种资料进行尝试,折腾了好久,但是查找了这么多资料,相似度在90%以上!!!,相同的安装过程,测试了几台机器,未曾成功,不得不感慨自己能力有限,最终慢慢摸索,形 ...
- jenkins git gradle android自动化构建配置
需要安装软件(jenkins所在服务器): gradle.SDK 一.gradle安装(服务器部署的gradle版本需要等于或高于开发环境的gradle版本) 1.下载地址:http://servic ...
- 使用Jenkins配置Git+Maven的自动化构建
Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便. 在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器 ...
- jenkins+maven+git+tomcat+salt自动构建
jenkins 安装步骤 环境: centos7,jdk1.8.0,jenkins2.165,maven3.5.2 一. 安装配置java环境 JDK1.8下载地址:http://www.orac ...
- 前端项目中使用git来做分支和合并分支,管理生产版本
最近由于公司前端团队扩招,虽然小小的三四团队开发,但是也出现了好多问题.最让人揪心的是代码的管理问题:公司最近把版本控制工具从svn升级为git.前端H5组目前对git的使用还不是很熟悉,出现额多次覆 ...
- Git钩子设置自动构建Jenkins
打开Git仓库,找到对应的项目,点击“仓库设置”,左侧点击“管理Git钩子”,如下图所示: 因为是push之后触发自动构建的,选择“post-receive”进行编辑 #!/bin/bash #提取分 ...
- 【Git 】$ ./gradlew idea 构建一个idea的项目
Welcome to Git (version 1.9.5-preview20150319) Run 'git help git' to display the help index.Run 'git ...
随机推荐
- angularJS contenteditable 指令双向绑定
项目遇到需求有点奇葩:双击div使其可编辑,失去焦点后进行数据绑定 通过自定义指令完成 好了上代码: .directive('contentEditable', function() { return ...
- Canvas学习笔记——缓动
当你驾车在高速公路上行驶时,速度是很快的,而快到收费站时,则开始减速直到停下.将这个例子转换成物理模型就是当物体向终点运动时,开始速度会很快,而在快要到达终点时,速度会逐渐放缓直至0,整个运动过程就是 ...
- Apcahe Shiro学习笔记(二):通过JDBC进行权限控制
一.概述: 官方对Realm(领域)的描述:https://www.infoq.com/articles/apache-shiro 其功能本质上是一个安全特定的DAO,用于链接数据持久层(任何形式的都 ...
- MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)
Linux下安装初始化完MySQL数据库之后,使用mysqld_safe启动mysql数据库,如下发现,启动失败 [root@SVNServer bin]# ./mysqld_safe –user=m ...
- 05 referer头与防盗链
像上图中的这个效果,当我们在网页里引用站外图片时,常出现这样的情况. ??? 服务器是怎么样知道,这个图片是在站外被引用的呢? 还有在网站的统计结果,统计用户从何而来,如下图 ??? 统计时,是如何得 ...
- This means that only a small number of nodes must be read from disk to retrieve an item.
http://cis.stvincent.edu/html/tutorials/swd/btree/btree.html Introduction A B-tree is a specialized ...
- machine learning for hacker记录(3) 贝叶斯分类器
本章主要介绍了分类算法里面的一种最基本的分类器:朴素贝叶斯算法(NB),算法性能正如英文缩写的一样,很NB,尤其在垃圾邮件检测领域,关于贝叶斯的网上资料也很多,这里推荐那篇刘未鹏写的http://mi ...
- 对于pod导入第三方库文件终端语言记录
//换成 pod install --verbose --no-repo-update //生成Podfile文件 touch Podfile 加上--verbose --no-repo-update ...
- android中样式和自定义button样式
1)自定义button样式 一.采用图片方式 首先新建Android XML文件,类型选Drawable,根结点选selector,自定义一个文件名. 随后,开发环境自动在新建的文件里加了select ...
- Codeforces Round #222 (Div. 1) Maze —— dfs(连通块)
题目链接:http://codeforces.com/problemset/problem/377/A 题解: 有tot个空格(输入时统计),把其中k个空格变为wall,问怎么变才能使得剩下的空格依然 ...