1、协同开发流程
- 在dev的基础上创建三个开发的分支
-每个人都在自己的分支中进行开发
-第一个人开发完成之后把review分支从云端版本库中拉下来 -将个人的分支与review分支合并(确保review分支是最新的代码)(可能有冲突) -上传review分支到云端版本库
-第二个人开发完成 -把review分支从云端版本库中拉下来 -将个人的分支与review分支合并(确保review分支是最新的代码)(可能有冲突) -上传review分支到云端版本库
-第三个人开发完成 -把review分支从云端版本库中拉下来 -将个人的分支与review分支合并(确保review分支是最新的代码)(可能有冲突) -上传review分支到云端版本库
-开发组长或者老大review代码,如果代码没问题再将代码合并到dev分支中
-在dev分支中测试,如果测试没问题在加到master分支中上线
注意:一般在公司中都会约定好开发完成一两个小功能或者固定多久时间就会review合并一次代码,查看是否有冲突
面试题:
公司代码review怎么做?谁来做?
我们自己都有自己的分支河review分支,小功能开发完成之后合并到review,小组长或老大review。
追问:那你们小组长不开发吗? 答:小组长只开发核心技术,工作量比较小;或者我们固定约好两三个小时一起review
面试题:每个人都有自己分支
2、添加项目合作者:在项目的settings中添加合作者
3、组织
3.1创建组织
3.2进入组织
3.3创建仓库:
3.4创建项目:创建之后组内的每个成员都可以对其进行开发代码
3.5组织内添加成员
3.6成员的权限
4、.gitignore 文件
首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”。这样没有扩展名的文件在Windows下不太好创建,这里给出win7的创建方法:
创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”。
一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。
实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密码的配置文件等等。
这个文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。
下面我们看看常用的规则:
-
/mtk/ 过滤整个文件夹
-
*.zip 过滤所有.zip文件
-
/mtk/do.c 过滤某个具体文件
很简单吧,被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。
需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:
-
!*.zip
-
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。
为什么要有两种规则呢?想象一个场景:我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。那么我们就需要使用:
-
/mtk/
-
!/mtk/one.txt
假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。
简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。
所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。
# 此为注释 – 将被 Git 忽略
*.a
# 忽略所有 .a 结尾的文件
!lib.a
# 但 lib.a 除外
/TODO
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/
# 忽略 build/ 目录下的所有文件
doc/*.txt
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
5、github上 fork 他人的代码
找到某个项目,点击fork,这样就把他的项目copy到了我的版本库中,在我得版本库中进行修改bug
修改完成之后要让他知道,我们就点击上面这个按钮,进入到下面的页面
选择要返回通知的对象-也就是从哪fork来的地方
再点击
然后就显示提交成功了,
这样被fork的那个人就会受到一个被fork的请求,如果他同意了这次请求,他的项目中就会展示出我修改的内容,那么我就成为了他的项目的贡献者
6、git的认证 : ssh秘要认证和https认证,现在在公司中这两个没有太明显的区分
https认证需要输入用户名与密码,但是现在优化的都会记住密码的。
下面介绍ssh秘要的方式认证: 一定要在终端做
1)创建了一对秘要
2)查看秘要
3)显示公要,复制→放到github中settings配置
4)到你的个人github中添加公要
5)填上title→把复制的公要填上,然后点击add添加
这样配置好以后就不再需要登录密码什么的了,但是要注意:只能用ssh 链接的方式,如下图
7、面试题: 你们公司项目是怎么上线的,怎么把代码传到服务器的?
答:就是把代码放到服务器上运行,上传代码有以下两种方式: