Github之协同开发

一、协同开发

1、引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢?

要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来。所以,

为每一个人创建一个分支,各自都在各自的分支上写代码,互不影响。

很短时间内大家暂时先合并一次,不然冲突太多了。但是这个分支不是dev,而是review分支,当老大看完没问题之后再合并到dev分支。

二、协同开发的两种方式:

方式一:创建协作者和组织:

方式二:添加组织

三、创建完之后就开始写代码了

先创建了一个dev的分支
git branch dev
git checkout dev
git push origin dev
又创建了一个review的分支
git branch review
gir checkout review
git push origin review
创建自己的分支
git branch haiyan
git branch xiaxiao
git branch sk git checkout sk
git pull origin review

假如现在有两个人在进行开发

海燕创建了个文件
git branch haiyan
git checkout haiyan
touch a.py
ls
git add .
add commit -m '代码初始上线'
git push origin haiyan
ls
vim a.py #写了一些内容
git add .
add commit -m '小功能开发完毕'
git push origin haiyan
#现在两人都写完了,开始合并和review进行合并了
git checkout review
git pull origin review #吧远程的review拉下来
#吧自己的合并发到review
git merge haiyan
ls
git status
git push origin review #再次写的时候
git pull origin review
宋康创建了个文件
git branch sk
git checkout sk
touch s.py
ls
git add .
add commit -m '到了新公司好激动啊'
git push origin sk
ls
vim s.py #写了一些内容
git add .
add commit -m '小开发完毕'
git push origin sk
#现在两人都写完了,开始合并和review进行合并了
git checkout review
#git pull origin review #如果先没有吧远程的review拉下来
#吧自己的合并发到review
git merge sk
ls
git status
git push origin review #这时候的review是最新的,那么海燕先提交了,完了她还得拉先来再合并一次
老大看了review分支,如果OK,可以放到dev分支进行测试,如果测试没有问题了
才放到master分支。
master分支:线上的版本,永远保证线上的版本,无论是回滚到哪都是能用的

两个面试题

1、你们公司的代码review分支怎么做?谁来做?
答:我们创建的review分支,我们小功能开发完之后,合并到review分支
交给老大(小组长)来看,
你组长不开发代码吗?
他开发代码,但是它只开发核心的东西,任务比较少。
或者抽出时间,我们一起做这个事情
2、你们公司协同开发是怎么协同开发的?
每个人都有自己的分支,阶段性代码完成之后,合并到review,然后交给老大看

四、GIT之忽略文件和ssh

当你提交代码的时候不要把所有的代码都提交,尤其是你自己的隐藏文件,还有pycharm自动生成的隐藏文件,

两个方式:

  手动修改:在你add的时候不要把它添加进去就行了

  自动修改 :需要改一下配置文件

vim . gitignore

/idea

touch a.py

touch b,py

不要.py了文件了,在编辑的时候写上*.py

认证的两种方式

1、通过http协议的

Https:
https://github.com/ugfly1210/git_projects.git

2、通过ssh的

SSH:
git remote add origin

git@github.com:ugfly1210/git_projects.git

创建秘钥

取到公钥

 

最新文章

  1. 【.NET深呼吸】动态类型(扩充篇)
  2. XmlReader和XElement组合之读取大型xml文档
  3. MongoDB简介与增删改查
  4. composer 安装
  5. XE8 (RTM) Android SDK 更新安装
  6. Android studio .9图片造成的错误总结
  7. C#导出带有格式的Excel(列宽,合并单元格,显示边框线,加背景颜色等)
  8. C++类中静态变量和静态方法使用介绍!
  9. php laravel mysql无法连接处理方案(linux服务器配置)
  10. C语言单片和C#语言服务器端DES及3DES加密的实现
  11. MAC OSX在视图port哪个程序占用,杀死进程的方法
  12. node.js之require
  13. k8s架构分析(二)--技术流ken
  14. 关于MySQL5.7开启bin-log主从复制
  15. hashmap源码研究
  16. 第30节:Java基础-内部类
  17. MySQL分库分表浅谈
  18. 【读书笔记】iOS-Nib的一些知识
  19. JSP—简介
  20. 002——数组(二)each() list() implode() explode() in_array()

热门文章

  1. samba安装应用实例-2
  2. 阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置
  3. python UI自动化之JS定位
  4. malloc分配内存进行对齐的操作
  5. Service Mesh体验
  6. c语言Ι博客作业04
  7. SPOJ 4003 Phone List 题解
  8. c++实现直接插入排序
  9. import cv2 报错:ModuleNotFoundError: No module named 'cv2'
  10. 实现添加相关资源的弹出ifreame 并实现多选框