git快速学习笔记

news2024/11/23 15:40:49

1.目标

  • 了解Git基本概念
  • 能够概述git工作流程
  • 能够使用Git常用命令
  • 熟悉Git代码托管服务
  • 能够使用idea操作git

2.概述

2.1开发中的实际场景

场景一:备份

        小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流

场景二:代码还原

        这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的代码已经回不到从前了。什么地方能买到哆啦A梦的时光机啊?

场景三:协同开发

        小刚和小强先后从文件服务器上下载了同一个文件:Analysis.java。小刚在Analysis.java文件中的第30行声明了一个方法,叫count(),先保存到了文件服务器上;小强在Analysis.java文件中的第50行声明了一个方法,叫sum(),也随后保存到了文件服务器上,于是,count()方法就只存在于小刚的记忆中了

场景四:追溯问题代码的编写人和编写时间!

        老王是另一位项目经理,每次因为项目进度挨骂之后,他都不知道该扣哪个程序员的工资!就拿这次来说吧,有个Bug调试了30多个

2.2版本控制器的方式

 a、集中式版本控制工具

        集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。举例:SVN和CVS

b、分布式版本控制工具

        分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。

        举例:Git

2.3 SVN 

2.4 Git 

        Git是分布式的,Git不需要有中心服务器,我们每台电脑拥有的东西都是一样的。我们使用Git并且有个中心服务器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一样的。我们可以把它当做一个开发者的pc就可以就是为了大家代码容易交流不关机用的。没有它大家一样可以工作,只不过“交换”修改不方便而已。

        git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。同生活中的许多伟大事物一样,Git诞生于一个极富纷争大举创新的年代。Linux内核开源项目有着为数众多的参与者。绝大多数的Linux内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到2002年,整个项目组开始启用一个专有的分布式版本控制系统BitKeeper来管理和维护代码。

        到了2005年,开发BitKeeper的商业公司同Linux内核开源社区的合作关系结束,他们收回了Linux内核社区免费使用BitKeeper的权力。这就迫使Linux开源社区(特别是Linux的缔造者LinusTorvalds)基于使用BitKeeper时的经验教训,开发出自己的版本系统。他们对新的系统制订了若干目标:

        速度

        简单的设计对

        非线性开发模式的强力支持(允许成千上万个并行开发的分支)

        完全分布式有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

 

2.5.Git工作流程图

命令如下:

        1.clone(克隆):从远程仓库中克隆代码到本地仓库

        2. checkout(检出):从本地仓库中检出一个仓库分支然后进行修订

        3. add(添加):在提交前先将代码提交到暂存区

        4. commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本

        5. fetch (抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。

        6. pull (拉取):从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge

        7. push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

3.Git安装与常用命令 

本教程里的git命令例子都是在Git Bash中演示的,会用到一些基本的linux命令,在此为大家提前列举:

  • ls/ll查看当前目录
  • cat查看文件内容
  • touch创建文件
  • vi vi编辑器(使用vi编辑器是为了方便展示效果,学员可以记事本、editPlus、notPad++等其它编辑器)

未完待续

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

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

相关文章

C语言进阶(6)——结构体

文章目录1.结构体的基础知识2.结构体的声明3.特殊的声明4.结构体的自引用6. 结构体的内存对齐7.修改默认对齐数8.结构体传参位段1、位段定义2. 位段的内存分配3.位段的跨平台问题4.位段的运用场景1.结构体的基础知识 结构是一些值的集合,这些值称为成员变量。结构的…

51单片机——LED基础

从小就对电器元件比较感兴趣吧,经常拿坏的电器里面的芯片拆下来玩,甚至那些没坏的电器,比如我家的电视,也会希望它能坏掉,我好去看看里面是什么样子的,为什么能播放节目……,所以我第一眼看到51…

阿里云-解决EDAS创建应用文件过大无法上传部署问题

文章目录1、背景2、问题具体描述3、解决方案3.1、 2种方案3.2 、OSS 简介3.3、 OSS 功能特性4、 OSS 实操4.1、 上传程序文件4.2、 创建应用1、背景 在一次使用阿里云-EDAS发布应用服务过程中出现EDAS 上传应用包过大无法上传现象。 2、问题具体描述 最近在使用阿里云-EDAS发…

1.1.2续 特殊二极管部分选型

目录 1.稳压管 2.发光二极管 4.光电二极管 5.整流二极管 1.稳压管 利用二极管的反向击穿特性制成的,在电路中其两端的电压保持基本不变,起到稳定电压的作用 Vz 稳定电压:反向击穿后稳定工作的电压 Iz 稳定电流:工作电压等于…

Java异常情况了解

作者:爱塔居的博客_CSDN博客-JavaSE,数据结构领域博主 专栏:JavaSE 作者介绍:大三学生,希望一起进步~ 文章目录 目录 文章目录 一、异常结构体系 二、异常分类 三、异常处理 3.1异常抛出 3.2 异常捕获 四.【面试题】 五、题目练习…

大数据必学Java基础(一百一十九):Maven仓库与JDK的配置

文章目录 Maven仓库与JDK的配置 一、Maven仓库 二、JDK的配置 Maven仓库与JDK的配置 一、Maven仓库 Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。 仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路…

Linux:gcc工具

文章目录一.程序的翻译二.gcc工具的使用2.1gcc 文件名(直接编译)2.2gcc -o 自定义 原文件(自定义生成可执行程序名称)2.3./可执行文件2.4gcc -E(程序运行到预处理后结束)2.5gcc -S(程序运行到编译之后结束)2.6gcc -i(程序运行到汇编之后结束)2.7小结三.链接的过程3.1ldd命令3.2…

2023年最新谷歌Google帐号Gmail邮箱账号怎么注册成功的方法与教程?

因为工作、游戏或其他需求,有时需要使用谷歌Google帐号或Gmail邮箱账号。首先明确:谷歌google帐号不一定是Gmail邮箱帐号,但是Gmail邮箱账号一定是谷歌帐号。所以,大家注册Google谷歌帐号时默认为谷歌Gmail邮箱帐号就可以满足谷歌…

Linux基础命令,常用操作

Linux基础命令Linux的目录结构ls命令(list)隐藏文件、文件夹pwd命令(print work directory)cd命令(change directory)HOME目录相对路径、绝对路径特殊路径符mkdir命令(make directory)touch命令(touch)cat命令more命令cp命令mv命令rm命令(remove)which命令find命令grep命令wc命…

私有云建设,ALLINONE还是分层自主建设优化?

新钛云服已累计为您分享720篇技术干货私有云建设有两种思路,一种是使用整合解决方案,即ALLINONE的思路。一种是将私有云分层每层自主建设,使用不同的产品和解决方案分层优化组合使用。两种思路各有优缺点,适合不同的场景。一、ALL…

Mybatis-plus(上)

1.什么是mybatis-plus升级版的mybatis,目的是让mybatis更易于使用, 用官方的话说“为简化而生”官网:https://baomidou.com/初体验按照官网中的快速开始即可1.准备数据库脚本数据库 Schema 脚本如下: DROP TABLE IF EXISTS user; …

javaWeb RequestResponse

Request Request 继承体系 Tomcat解析请求数据,封装为request对象,并且创建request对象传递到service方法中 。Java提供了接口,tomcat的RequestFacade提供了实现。 Request 获取请求数据 请求数据分为3部分: 请求行&#xff…

一台手机即可完成 3D 建模,功能有多强大? #Luma AI

AIGC 的出现拓展了内容生产的诸多可能,借助 AI 技术来进行 3D 建模,可以节省不少的时间,市面上也出现了许多功能强大的 3D 建模工具。1 月 9 日,AppStore 上架了一款名为“Luma AI”的软件,能够将现实中的 2D 照片快速…

通过Terraform创建GCP Pubsub

1 简介 Terraform是管理许多平台的基础设施的工具,如AWS、GCP和Azure。这篇文章将讲解如何通过Terraform来管理GCP Pub/Sub。 创建GCP项目请参考:初始化一个GCP项目并用gcloud访问操作 2 Terraform创建Pub/Sub 2.1 下载Terraform插件 我们需要安装G…

【Blende UV映射01】创建UV 使用UV贴图处理纹理

写在前面 这是进行云渲染的最后一步,实践!! 会跟着这个Blender 2.8 UV Mapping教程快速学习一边UV映射的东西,已经是最最最最基础的了。 本文是教程的P1-P7的过程记录。 1 UV映射 拿一个3D物体,怎么去切割它&…

1301. C 循环(扩展欧几里得算法)

题目如下&#xff1a; 思路 or 题解: 抽象出数学公式&#xff1a; ak∗c≡b(mod1<<k)a k * c \equiv b (mod\ 1 << k)ak∗c≡b(mod 1<<k) 等价&#xff1a; x∗c−y∗(1<<k)b−ax * c - y * (1 << k) b - ax∗c−y∗(1<<k)b−a 用扩展欧…

[Python逆向] 逆向Pyinstaller打包的exe文件源码及保护

Python逆向Pyinstaller打包的exe文件源码及保护 写在前面 我们都知道可以使用Pyinstaller库可将.py文件编译成.exe文件运行&#xff0c;这篇文章我们就从将脚本编译成.exe并将.exe的源码内容反编译出源文件&#xff0c;再顺便谈谈如何防止被逆向。 环境工具 Python 3.6&#x…

(一)MicroPython——WIFI点灯

目录 学习目标 成果展示 硬件知识 代码 总结 学习目标 成果展示 预备知识 代码 总结 学习目标 我们今天来学习有关MicroPython的知识点&#xff0c;相比于用C语言来开发&#xff0c;MicroPython有许多的优点&#xff0c;比如可以交互&#xff0c;有大量的库可以调…

Allegro如何把快速BUS组高亮成不同颜色操作指导

Allegro如何把快速BUS组高亮成不同颜色操作指导 在做PCB设计的时候,会需要把BUS组高亮成不同颜色,方便评估与布线,Allegro支持快速把BUS高亮成不同的颜色,如下图 具体操作如下 打开颜色管理器出现颜色管理器

1576_AURIX_TC275_MTU控制与状态寄存器

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 在这一页之前&#xff0c;连续有好几个寄存器都是预留的&#xff0c;因此可以直接跳过。访问使能寄存器的功能&#xff0c;从描述看其实是非常熟悉的&#xff0c;因为这个描述的模板可以从…