git---->团队开发神器,一篇文章直接掌握

news2024/11/27 21:53:01

git---->团队开发神器,一篇文章直接掌握

  • 一 学习git的原因
  • 概念
    • 版本的概念
    • 1 版本控制软件的基础功能
    • 2 集中式版本控制软件
    • 3 分布式版本控制
  • 二 git的安装
  • 三 GitHub Desktop的使用
  • 四 团队操作
  • 五 中央服务器--github
    • 从github上下载文件到本地仓库
    • 传输文件
  • 六 国内中央数据库gitee
  • 七 版本号
    • 创建文件版本号的变化
    • 分支操作
  • 八 指令

在这里插入图片描述

一 学习git的原因

在这里插入图片描述在众多的项目管理中,git是更适合于我们的

概念

版本的概念

软件版本
比如我们经常用的软件

软件名软件版本
mysql5.7/8.0
JDK1.8/17/20
IDEA2022/2023

文件版本
应该在文件修改过程中,比较重要的操作(可能会破坏文件),我们就对其进行文件复制(创建副本),之后就有许多文件版本了
在这里插入图片描述作用

  • 保存重要的修改记录
  • 恢复数据

1 版本控制软件的基础功能

  • 保存和管理文件
    在这里插入图片描述

  • 提供客户端工具进行访问
    在这里插入图片描述

  • 提供不同版本文件的比对功能

    在这里插入图片描述

2 集中式版本控制软件

在这里插入图片描述
若要对其进行修改,则先从中央服务器里下载,在本地修改好后,再上传到中央服务器

这样的话很明显有个问题----->文件冲突问题

  • 每个人都去下载上传,会导致文件的被覆盖掉

VSS 如何解决的这个问题呢?
它用了

  • 当第一位员工进行修改时,该文件在中央服务器里是锁上的状态,该员工上传之后,锁才是开启的状态(其他人才可以进行下载)

但是这个效率是不是下降了呢?


CVS,SVN 如何解决的这个问题呢?
利用文件比对功能,约束员工对文件的修改

  • 每个人都可以进行下载,只是修改其中的指定部分

总结: 所有的操作都是以中央服务器为基础,那如果中央服务器宕机了,网崩了,我们所用的文件是否被损坏了呢?

3 分布式版本控制

  • 就是在本地再创建一个库存储信息,之后上传至中央服务器
  • 如果中央服务器出问题,修改好后,两个服务器关联一下就可以了

缺点: 依赖于网络
优点: 我们的资源更安全,本地的操作更快一些

其中git属于分布式版本控制

二 git的安装

Git的下载就直接进入官网,downloads那里选取自己电脑对应的系统安装即可
git官网

由于git是命令操作,和linux差不多,选用图形化界面的话会更容易上手,
图形化界面选这个github desktop
在这里插入图片描述
其中Git的安装环节,我配置的是notepad++

这个的下载参考这里
在这里插入图片描述

三 GitHub Desktop的使用

在这里插入图片描述

  • 咱们这里新建一个
    在这里插入图片描述README文档
    是对仓库文件的一些描述
    Git ignore
    让软件忽略其文件,比如:修改之后的副本文件,可以直接忽略掉,在对应的文件右键点击—>ignore

  • 界面解释
    在这里插入图片描述

  • 创建文件-----点击查看文件位置,创建一个文本,就可以操作了
    注:本地服务器是在.git文件内,我们无法对其进行操作

提交流程
在这里插入图片描述

这个比对功能只针对与文本文件,其他比如word,图片这些无法比对

创建一个文件通过提交操作,传到本地服务器中。
若对其进行修改再次提交,就会进行比对,然而两此文本都会保留在本地服务器中,查看history可查看历史操作记录
文件版本是由40个16进制的数字组成的,又叫提交码

若要删除文件(本地和服务器)—>删除文件夹里的文件,然后再次提交一个空的操作,本地服务器进行比对就会删除那个文件

四 团队操作

在这里插入图片描述
团队协作中,每个人负责的部分文件会多次修改提交,这么多人+提交的顺序混乱就会导致问题

  • 文件冲突问题
  • 本地服务器容量过大,文件对比效率降低

解决方法
git提供了一个分支的方法:

创建一个副本,多次进行修改都在副本操作,最后提交的时候在副本整合

在这里插入图片描述
实际上开发
wangwu为产品经理

在这里插入图片描述
操作演示
在这里插入图片描述

创建分支仓库,在其创建文件上传到对应的仓库

在这里插入图片描述
在这里插入图片描述
选择要合并的仓库,进行操作

两个仓库都要去合并同一个文件,则会引起文件冲突,在合并的时候会提示错误
需要手动解决文件冲突问题

对提交的历史记录进行标签备注操作
在这里插入图片描述

五 中央服务器–github

网页注册登录github
在这里插入图片描述
------------------------------------------------------------------------------------------------------------------在这里插入图片描述

在这里插入图片描述

从github上下载文件到本地仓库

在这里插入图片描述在这里插入图片描述

传输文件

在这里插入图片描述

六 国内中央数据库gitee

官方网址

和github用法差不多

七 版本号

git根据文件内容以及加密算法(SHA-1:40位
定位仓库中的文件(2(文件夹)+38(文件名)------->在.git–>objects里

利用git命令在查看其版本号的变化以及文件内容

git cat-file -p +版本号

创建文件版本号的变化

在这里插入图片描述创建并提交一个文件,可见会产生许多相关文件
在这里插入图片描述再去创建并提交一个文件,该文件与之前的文件也是有关联

分支操作

在这里插入图片描述

HEAD文件指向当前仓库,里面可查看最新操作的版本号,不同的分支仓库指向不同的最新版本号

文件的状态变化
在这里插入图片描述

八 指令

在这里插入图片描述可见一些底层原理的实现还是要靠指令的

git常用命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python如何实现自增

Python如何实现自增 在Python编程中,自增是一种非常常用的操作,它可以让我们在循环、计数等场景中更加方便地进行操作。实际上,在Python中,实现自增非常简单,本文将介绍Python中常用的自增操作,并分享自增…

时间复杂度 空间复杂度

概览 时间复杂度与空间复杂度的作用是在衡量一个算法的优劣性,以及在二者之间进行权衡,寻找二者的平衡点。 时间复杂度是指执行算法所需时间的增长率,而空间复杂度则是指执行算法所需存储空间的增长率。 高时间复杂度的算法可能需要在短时间…

LayUI前框框架普及版

LayUI 一、课程目标 1. 【了解】LayUI框架 2. 【理解】LayUI基础使用 3. 【掌握】LayUI页面元素 4. 【掌握】LayUI内置模块二、LayUI基本使用 2.1 概念 layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架&#xff0…

Nginx+Tomcat 负载均衡、动静分离

目录 一、Nginx代理服务器概念 1.正向代理 2.反向代理 二、动静分离 三、负载均衡 四、Nginx七层代理实验 1.部署Nginx服务 2. 部署Tomcat服务 2.1在192.168.88.50 虚拟机上部署双实例 2.2在192.168.88.60 上部署Tomcat服务器3 3.动静分离配置 3.1Tomcat1 server 配…

RecyclerView的回收缓存均由内部类Recycler完成

1. RecyclerView的三级缓存 通常在RecyclerView中存在着四级缓存,从低到高分别为: 可直接重复使用的临时缓存(mAttachedScrap/mChangedScrap) mAttachedScrap中缓存的是屏幕中可见范围的ViewHoldermChangedScrap只能在预布局状态…

Material—— 常用材质节点

目录 Coordinates Absolute World Position Actor Position Object Position Utility SphereMask Coordinates 表示坐标类的节点; Absolute World Position 别名为WorldPosition,此节点输出当前像素在世界空间内的位置;常用于查找相机到…

作为过来人:有什么话想对当年高考前的自己说

目录 引言千人千面-有什么话想对当年高考前的自己说怀念高中,数学太难多考一分,人生就会不一样一定要勇敢,不止高考别把高考不当回事6的我没话说想到啥就去做别选**大学/专业强烈想出名的拖鞋哥英语全选C,理综要细心会的全做对当时…

Spring - 注解开发

文章目录 Spring的注解开发一、Bean 基本注解开发1.1 Component Bean的配置1.2 其他注解配置Bean1.3 Component 衍生注解 二、Bean依赖注入注解开发2.1 Value2.2 Autowired2.3 Qualifier2.4 Resource 三、非自定义注解开发3.1 无参非自定义注解开发3.2 有参非自定义注解开发 四…

Domino 14新内核

大家好,才是真的好。 还记得去年,我们不断跟进而放出的Notes/Domino产品路线图吗?是的,HCL正在按照产品路线图稳步推进,而很多人提出的idea,也逐步加入到产品中,等会我们也会聊到。 我最喜欢这…

MySQL安装-Linux版

MySQL-Linux版安装 1、准备一台Linux服务器 云服务器或者虚拟机都可以; Linux的版本为 CentOS7; 2、 下载Linux版MySQL安装包 下载地址 3、上传MySQL安装包 使用FinalShell软件上传即可! 4、 创建目录,并解压 mkdir mysqltar -xvf my…

【Web服务器】Nginx网站服务

文章目录 一、Nginx 概述1.什么是 Nginx2.Nginx 的特点3.Nginx 应用场景 二、Nginx 服务基础1.编译安装 Nginx 服务1.1 布置环境1.2 安装依赖包1.3 创建运行用户、组1.4 编译安装 2.Nginx 的运行控制2.1 检查配置文件2.2 启动、停止 Nginx2.3 日志分割以及升级 Nginx 服务2.4 添…

调用腾讯API实现图片滤镜

目录 1. 作者介绍2. 图像滤波介绍3. 实验过程及结果(附完整代码)3.1 准备工作3.2 实验代码3.3 实验结果 1. 作者介绍 班梦威,男,西安工程大学电子信息学院,2022级研究生 研究方向:模式识别与人工智能 电子…

企业如何有效制定企业信息化发展规划?(附信息化模板)

如何有效制定企业信息化发展规划?企业信息化发展规划是一个宏大而又复杂的命题,这篇来掰开揉碎讲一下企业应该如何有效制定信息化发展规划。 这里不给大家灌鸡汤,也不给大家画大饼,就说些实在的。 如果你想找经验方法&#xff0…

Lambda表达式与函数式编程

文章目录 函数式编程——Stream流概述为什么学?函数式编程思想 Lambda表达式概述Lambda表达式的前身省略规则 Stream流概述案例数据准备创建流中间操作终结操作reduce归并注意事项 Optional概述创建对象安全消费值获取值安全获取值过滤数据转换 函数式接口常用的默认方法 方法…

APPSCAN扫描https协议的网站证书安装过程(Googel浏览器)

【1】首先打开我们的appscan,点击外部设备。 【2】点击记录代理配置 【3】弹出选项后,在记录代理下我们可以看到AppScan SSL证书,这点我们点击导出 【4】这里你选择一个合适的位置,点击保存 【5】保存后的文件是一个zip压缩包,…

GPT4和Claude100k测试使用

总述 程序员们通常使用大量代码,找到一个能够使用Claude100k和GPT4的,长代码优化有希望啦! Liaobots:支持GPT4和Claude100k 不定期供应GPT4 32k,支持最多24000字符请求 大家有时候会觉得GPT4 8k不够用,…

TensorFlow入门知识

个人理解 TensorFlow是集齐了很多深度学习相关的算法的框架,你可以利用他搭建自己的神经网络模型。对于开发者来说,告诉TensorFlow一批特征数据和最终的答案数据,让其通过一个神经网络模型进行训练,最终输出模型。模型将应用于应…

DSP-OMAPL-138 RTOS开发(1)——报错总结

1 git的作用 第一个问题,也不算错误:工程文件会有一个名称会有一个横着的箭头并且文件名前面都有问好,不算错误(算个发现),但是发现将git文件删去即可,如果没有,右击工程文件->选…

用逆向思维学习技术

tip: 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 推荐:体系化学习Java(Java面试专题) 前言 学习任何知识&#xff0c…

新Ubuntu怎么装Nidia驱动,cuda和cudnn

怎么安装nvidia驱动 软件更新->附加驱动 选择一个喜欢的 或者找推荐的 Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_ubuntu20.04 无图形化安装cuda_哈希Map的博客-CSDN博客 sudo ubuntu-drivers autoinstall 怎么安装cuda gcc 不用降级 (我没降级就安装好…