git clone 多个_如何通过Git参与项目开发
Git介绍
QA&
小白
Git 是什么?
Git是一个开源的免费的分布式版本管理系统,最初是由Linux内核发明人Linus Torvalds用于管理Linux内核开发而开发的。
大神
小白
Git的分布式是怎么样的?
相对于集中式的版本控制系统,每个开发者可以克隆,在本地机器上拷贝一个完整的git仓库,并可以提交代码到本地。
大神
小白
跟SVN比起来,Git的速度能快多少?
参见如下benchmark测试对比图,就可以清楚看出Git的速度了!
大神
小白
Git的分支是什么?
分支(branch)是Git的核心概念之一,类似于CC的流,但又不相同。
大神
Git 支持创建多个分支用于不同的用途,比如默认的master分支用于生产环境,创建dev分支用于测试环境,其他的一些分支则用于各种功能特性的开发环境。各个分支之间是独立的,当开发者提交代码到专用开发分支时,不用担心污染到其他分支的代码,而且各个开发者之间可以并行开发,最后通过合并(merge)把代码合并到主干(master/dev)分支。
小白
Git的暂存区(staging area)是什么?
暂存区是在提交(commit)代码前的一个中间区域,可以用这个图来说明。
大神
小白
Git相对于CC有哪些优势?
优势简直两只手都数不多来啊~例如↓↓↓
大神
Git一个副本支持无限量的分支,而CC每个流都需要一个副本。切换分支只需要一个命令,而切换流需要下载不同的仓库副本,占空间、切换不变、代码同步异常困难。
Git 进行代码的合并只需要一个PR,而CC需要繁杂的合并工作,并且容易出错。尤其是只需要合并部分代码时,只能一个个提交进行合并,极易遗漏。
Git 的PR保存的是快照,非常便于进行代码review,每次代码提交和发布都是透明且可控的。CC缺乏相应功能。
Git 支持非常灵活的多分支开发,可以无限并行。CC 只能在有限(1-2)个流上进行,并行任务及其有限(比如两个流,只能进行两个版本的任务,很难进行更加超前的开发),并且在发布后需要手动同步。
Git 每次commit和pr都可以非常便利的查看所有变更的文件和每个文件变更的细节,CC主要靠每个文件的历史记录。
Git 灵活的分支支持快速地迭代和高效的开发、发布流程。CC臃肿复杂。
Git 支持友好的多人协同开发,CC支持极差。
Git 拥有友好、强大的用户界面,超多可选的客户端,强大的命令行工具。CC上世纪的设计已经难以适应当前的主流节奏。
Git 强大的功能可以非常简单地处理非常复杂的场景和需求,CC不能适应复杂的场景。
Git 免费,CC非常昂贵。
Gitlab的使用
小白
在Gitlab中,作为项目的管理者,怎么创建新的项目呢?
通常情况下,先创建群组,并把项目成员加入群组,接着可以在群组中创建新项目,具体操作是这样的:
大神
01
新建群组
022
群组命名
输入群组名称/描述,选择可见性级别(私有/内部/公开),注:群组URL不支持中文字符。
可见性级别:
※ 私有:仅限项目组的成员可访问
※ 内部:登陆用户可访问
※ 公开:无论登陆与否,都可以访问
03
新建项目
在群组中,创建新项目
04
项目命名
输入项目名称/描述,点击“Create project”按钮,完成项目的创建!
小白
在Gitlab中,作为项目的管理者,怎么保障项目的代码安全?
目前,Gitlab提供两种方法:
大神
01
Gitlab支持针对不同的开发者角色,提供不同的权限,分为如下几种:
Guest – 无法读取代码
Reporter – 可以读取代码
Developer – 可以读写代码
Maintainer – 读写代码 + 项目的部分管理权限
Owner – 读写代码 + 项目的所有管理权限
02
在Gitlab中,可以设定保护特定的分支,只允许特定的角色(比如owner/maintainer)对特定的分支推送(push)代码或合并分支,设置如下图:
小白
作为一个开发者,怎么参与到一个项目的开发?
以下图sam_test_project项目为例,下面提供两种方式,让我们细细道来。
大神
壹
第一种,通过Eclipse方式。目前,低版本的Eclipse不自带Git插件,需要自行安装,Eclipse 2018-09以上,是自带Git插件的,需要注意的是它的运行需要1.8版本以上的JDK支持。
1
开发者登陆Gitlab,进入要参与的项目,点击右上角的“clone”按钮,拷贝对应的仓库地址(.git结尾的URI地址)。
02
打开Eclipse, 选择File ->import ->Git ->Projects from Git ->点击Next
03
选择Clone URI ->点击Next
04
在URI中粘贴你复制的Git仓库地址,Eclipse会自动弹出剩下的信息。同时在User中输入账户名,在password中输入密码,点击Next
05
进入分支选择页面后,这里选择的是dev分支,点击Next
06
配置本地项目存放路径,这里配置在云桌面的H盘
07
此时Git项目会自动下载,等项目下载的进度条加载好以后,选择第三个选项(Import as general project),点击Next。注:Import existing eclipse projects是导入一个存在的工程。
08
点击Finish, 可以看到完整的项目
09
修改完代码后,右键项目,选择Team->Commit
10
在Git Staging,把“Unstaged Changes”加入到Git 暂存区
11
输入commit message, 点击”Commit and Push”推送到远程Git仓库
12
点击close完成
贰
第二种,通过Git bash命令行方式克隆/提交代码:
01
开发者登陆Gitlab,进入要参与的项目,点击右上角的“clone”按钮,拷贝对应的仓库地址(.git结尾的URI地址)。
02
在已安装了Git客户端的文件夹中,右键点击“Git Bash Here”,克隆项目代码到本地,如下图。
03
接着修改本地代码,并提交代码到远程仓库中,以修改dev分支的test.sh文件为例:
小白
那么,在Gitlab中,分支合并是怎么操作?
首先,登陆gitlab,创建合并请求,把dev分支合并到master分支,并可对比两个分支之间的文件和代码差异性。
大神
接着,项目的owner/maintainer收到合并请求,审阅代码变更并批准合并(merge)请求,最后dev分支被合并到master分支中。
大神
好啦,今天的介绍就到这里,相信通过以上的Q&A,大家都对Git及其使用有了初步了解了吧!更多Gitlab问题咨询或技术交流,请联系张海滨或赵少山。欢迎大家共同探讨学习。
—END—
系统与非功能团队出品
作者:赵少山
编辑:方妍
往期精彩回顾
1. 项目中用到的策略模式
2. webpack4搭建react项目
3. 远程办公之“血肉长城”
4. Web响应式布局实践
5. 初识云原生
关注我们
git clone 多个_如何通过Git参与项目开发相关推荐
- 虚拟机centos7 git clone特别慢_从文件生命周期看GIT的提交流程
上一篇GIT的理论知识比较枯燥无味,理论性较强,也是难以引起共鸣! 波罗学:谈谈版本管理GIT之理论与架构zhuanlan.zhihu.com 紧接上篇,今天从实在操作方面说一下GIT使用中,使用最 ...
- git clone 多个_搭建自己的 Git 服务器
根据 RhodeCode[1] 在 2016 年做过的一项分析报告 Version Control Systems Popularity in 2016[2],在如今的 VCS(版本控制系统)领域,G ...
- git clone 添加代理_用树莓派3搭建私有git代码仓库
0.出发点 由于项目开发的规模和复杂度越来越大,有时候需要同时多人在不同的嵌入式linux上开发代码,在没有用git管理代码和文档前,很难同步代码和文档的版本,宝贵的代码存储也没有安全感. githu ...
- git clone 多个_软件测试知识点 | 测试过程常用的Git命令
testkuaibao|软件测试自学公众号 点击上图进入软件测试面试题题库,面试题都是有相应的参考答案,希望对小伙伴们有所帮助 前言 目前,在版本控制系统中Git已经被广泛使用,并且很多技术团队也会逐 ...
- git钩子放服务器_如何使用Git 钩子来自动化开发和部署任务
介绍 版本控制已成为现代软件开发的中心要求. 它允许项目安全地跟踪更改,启用撤销,完整性检查和协作等好处. 在git的版本控制系统,特别是,已由于其分散式架构,并在它可以使和转让方之间变化的速度看到广 ...
- git clone 之前,是否需要先 git init
不需要 git clone是一个组合,clone会包含init,remote,fetch,checkout这些操作.自动创建 .git文件夹和 origin远程地址别名. (只有第一次拉取代码用 cl ...
- git clone出现fatal: HTTP request failed --git版本问题
当git版本低于2.0版本时,在push或clone代码时容易出现"fatal: HTTP request failed"的问题. 当前,git的最新版本是2.33.1.但是,当我 ...
- 用git clone命令从gitlab上拉取公司项目操作步骤
Begin 有两种方式Clone: Clone with SSH Clone with HTTPS 听说第二种方法比较复杂,这里介绍第一种配置SSH公私钥方法 配置公私钥方法 第一步:在gitlab上 ...
- git 设置有效目录_如何有效使用Git
git 设置有效目录 The code was working yesterday but today it is not 该代码昨天有效,但今天却没有 The code got deleted 代码 ...
最新文章
- 使用Intellij IDEA 解决Java8的数据流问题
- Deep learning调参经验
- WOJ 1313 - K尾相等数
- 苹果airpods android,苹果AirPodsPro搭配Android手机实测:支持功能不够完整,购买前要认真考虑...
- 网络编程学习笔记(UDP的connect函数)
- IOS开发-通知与消息机制
- Webpack构建多页应用心得体会
- 【bzoj4994】[Usaco2017 Feb]Why Did the Cow Cross the Road III 树状数组
- 数据包捕获计算机网络实训,计算机网络-使用网络协议分析器捕捉和分析协议数据包...
- Java虚拟机学习 - 体系结构 内存模型(转载)
- VGG16迁移学习,实现医学图像识别分类工程项目
- Silverlight的资源
- 集体智慧编程Python
- 移动端web轮播图插件swiper,功能很强大
- 数据结构(十四)——二叉树
- 分析virtio-blk+qemu+spdk环境中virtio-blk不用执行virtqueue_kick操作通知后端处理IO的原因
- 近几个月Github上最热门的Java项目一览
- logback系列之四:输出日志到不同文件
- 安装archlinux+cinnamon笔记
- m031开发 新唐_基于新唐M031开发的激光测距仪方案
热门文章
- linux配置python环境变量_linux添加PYTHONPATH环境变量
- python是脚本语言、需要编译器编译执行_使用Notepad++编译运行C/C++/Python程序
- Elasticsearch Transient与Persistent的区别
- 一个超级牛X的Python可视化库,隔壁老奶奶都会用!
- 小体积神器!这款不到500KB的电脑软件,功能也太赞了!
- centos 安装jdk_CentOS 7 安装 Oracle JDK 8
- keil 在项目栏总有个叉_老股民的热心分享:均线金叉死叉买卖定式”,散户值得一看!...
- 拨号云服务器怎么自动配置网关_教你在阿里云创建增强型云网关
- java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...
- 面试必问:读写一致性,你需要思考的问题