gitolite代码管控与团队协作_第1页
gitolite代码管控与团队协作_第2页
gitolite代码管控与团队协作_第3页
gitolite代码管控与团队协作_第4页
gitolite代码管控与团队协作_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.Gitolite代码管控与团队协作代码管控与团队协作Nick.Wang(汪伟)什么是什么是gitolite? 从单兵作战到团队协作 从随心所欲到纪律严明什么是什么是gitolite? Perl编写,高效稳定。 ssh公钥,安全可靠。 版本

2、库、分支、路径 精细权限控制用户认证用户认证 服务器地址:192.168.3.11 认证方式: ssh 认证步骤: $ rm -fr /.ssh $ ssh-keygen -f /.ssh/NickWang用户认证用户认证 将生成的公钥*.pub发给管理员 建立配置文件/.ssh/config用户认证用户认证 完成上述操作后 如无意外,可获 得权限,正常情 情况下,可用右 侧的指令查看权 限团队内协作团队内协作 Team Leader上传基线软件 团队成员下载代码 $ git clone gitolite:版本库名字 如:团队内协作团队内协作 查看此版本库有哪些远程分支 $ git branc

3、h -a 切换到你想要的分支 $ git checkout -track origin/分支名 团队内协作团队内协作 查看是否切换成功 $git branch a 恭喜,你已成功获得了你想要的代码! 团队内协作团队内协作 获得代码后的第一件事: Not But 团队内协作团队内协作 编译通过后的准备工作 $ git status 谁修改了这些文件?团队内协作团队内协作 忽略不关心的文件 $ git status .gitignore $ vi .gitignore 编辑这个文件,使它只包含文件路径团队内协作团队内协作 看看忽略的效果 $ git status 为什么有漏网之鱼 团队内协作团队内

4、协作 干掉漏网之鱼 $ update-index -assume-unchanged FILE_NAME团队内协作团队内协作 干净的工作区,良好的开发习惯 $ git status 团队内协作团队内协作 简单修改提交 代码修改后,运行$ git status查看哪个文件被修改 运行$ git diff + 文件名,确认是否修改正确 运行$ git add + 文件名,逐个添加文件团队内协作团队内协作 简单修改提交 运行$ git commit -m “modify log”提交到本地 至此,已经完成一次本地提交,你可以选择把本地提交“贡献”到服务器,也可以累积多次本地提交,一并“贡献”到服务器

5、。 将本地版本库更新到与服务器一致 $ git fetch 将你的修改应用到最新的本地版本库上 $ git rebase origin/远程分支名团队内协作团队内协作 简单修改提交 将合并后的版本库推送到服务器 $ git push origin 本地分支名:远程分支名团队内协作团队内协作l 来看一下rebase的原理 刚取下来的代码,本地与服务器一致团队内协作团队内协作l 来看一下rebase的原理经过一段时间的开发,服务器版本库和本地版本库各自生长团队内协作团队内协作l rebase就是从两个分支共同祖先算起,将一个分支的改动完整的移动到另一个分支上团队内协作团队内协作l rebase的最

6、终结果是实现个人成果与团队的完美融合团队内协作团队内协作l 特性分支 新模块、新功能开发、规模较大的修改、可能有风险的修改,都在特性分支上做,避免影响主分支的稳定性,特性分支测试稳定后,再合入主分支。 具体做法,在遇到上述情况时,先用下面的命令创建一个特性分支 $ git branch branchname 再切换到特性分支上进行修改、开发、提交、测试。 测试通过后,再合到主分支并上传 团队内协作团队内协作l 任务中断 某个功能开发到一半,突然Boss说有个紧急的bug,需要修改。 团队内协作团队内协作l 任务中断的对策 $ git add + 需要备份的文件 $ git stash save

7、 “XXXXXX” $ fix your bug $ git stash list $ git stash pop基线更新基线更新 二次开发不可回避的痛 基线更新基线更新基线更新 方法1: 将代码手动移植到新的基线上。 优点: 可靠性高 缺点: 时效性差基线更新基线更新 方法2:Patch法第一步:旧基线生成patch$ git format-patch第二步: 将旧基线的patch逐个应用到新基线上$ git am XXX.patch遇到冲突,停止patch,改为手动合并$ git am -abort基线更新基线更新 方法3:rebase法$ git remote add NEWBASE u

8、rl$ git fetch NEWBASE$ git rebase NEWBASE. Fix conflict 验证OK后$ git push NEW_REPO master:master有用的命令有用的命令查看修改的文件 $ git log -name-status查看暂存区与版本库的区别 $ git diff -cached合并最近的两次提交 $ git commit -amend -m “XXXX”显示远程版本库 $ git remote v分支推送 $ git push REP_NAME local_branch_name:remote_branch_name显示所有分支 $ git branch -a有用的命令有用的命令从指定的提交创建分支 $ git branch 重命名已经存在的分支 $ git branch -m 将工作区回退到指定的提交 $ git checkout 将版本库回退到指定的提交 $ git reset -hard 将其它分支的指定提交应用到当前分支 $ git cherry-pick 将同一分支上的指定两次提交之间的若干个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论