Git使用学习记录(一、前置知识)

news2024/9/20 14:39:14

Git使用学习记录(一、前置知识)


Git简介

Git 是什么?

Git 是目前为止最为先进的分布式版本控制系统(分布式版本控制系统没有“中央服务器”,每个⼈的电脑上都是⼀个完整的版本库,⼯作时不需要联网,因为版本库就在⾃⼰的电脑上)。

为什么使用 Git ?

我们在修改文档或者修改代码后,可能会发现修改后的效果还不如修改前的,那我们就需要恢复到修改前的版本,一般会用到一下几种方法:

方法一: Ctrl + z 一步一步的回退,但是,如果之前有保存,那一步一步的回退并不能回退到最初的版本。

方法二:先将需要修改的文件另存为,再在另存为的文件中进行修改,但是,这样的一个弊端就是文档一直修改,文档的数量就不断增加,最后,一个文档可能会存在十几个副本。

方法三:使用 Git ,Git 会记录每次的文档改动(如下表所示),如果需要回到之前的某一个版本,只需要告诉 Git 回退到目标版本就好了。Git 还可实现多人协作。

版本用户说明日期
1张三增加了日期设置12/2 11:05
2张三修改了金额12/3 10:34
3李四删除了人员数目限制12/4 11:00

Git 的历史(以下内容来自维基)

自2002年开始,林纳斯·托瓦兹(Linus Torvalds)决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护程式码。因为BitKeeper为专有软件,这个决定在社群中长期遭受质疑。在Linux社群中,特别是理查德·斯托曼与自由软体基金会的成员,主张应该使用开放原始码的软体来作为Linux核心的版本控制系统。林纳斯·托瓦兹曾考虑过采用现成软体作为版本控制系统(例如Monotone),但这些软体都存在一些问题,特别是效能不佳。现成的方案,如CVS的架构,受到林纳斯·托瓦兹的批评。

2005年,安德鲁·垂鸠(Andrew Tridgell)写了一个简单程式,可以连接BitKeeper的储存库,BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeeper内部使用的协议进行逆向工程,决定收回无偿使用BitKeeper的授权。Linux内核开发团队与BitMover公司进行磋商,但无法解决他们之间的歧见。林纳斯·托瓦兹决定自行开发版本控制系统替代BitKeeper,以十天的时间编写出git第一个版本。

集中式与分布式的区别

集中式本版控制系统:版本库是集中存放在中央服务器,如果工作需要修改某一文件,先需要从中央服务器获取最新的文件版本,然后开始文件修改,修改完成后,再把修改好的文件推送到中央服务器上。由于本地没有版本库,所以,集中式版本控制系统必须要在联网的环境中才能工作。

在这里插入图片描述

分布式版本控制系统:分布式版本控制系统不存在中央服务器,每个人的电脑上都是有一个完整的版本库,可实现无网工作。

分布式版本控制系统与集中控制版本系统相比,分布式版本控制系统的安全性安全许多,因为每个人的电脑都有完整的版本库,所以不存在核心服务器。而集中式版本控制系统的中央服务器出现故障,所有人的工作都将停止。

如何实现多人协作?

由于每个人的电脑上都有完整的版本库,那如何告诉其他人,我对某文件进行了修改?这就需要自己将修改的文件推送给其他的人,但实际上大家不一定都处于同一局域网中,所以分布式版本控制系统通常也有一台充当中央服务器的电脑,但这只是为什么方便推送修改。
在这里插入图片描述


安装 Git

推荐博客:Windows系统Git安装教程、Git教程(Linux、Windows、Mac 安装教程)


创建版本库

版本库又名仓库,相当于一个文件夹,这个文件夹里的文件都可以被 Git 管理,每个文件的修改、删除,Git 都能追踪管理。

  1. 选择合适的位置,利用 Git 建立一个空文件夹
    在这里插入图片描述

    1.1 在列表中单击 Git Bash Here,输入 mkdir learngit 创建文件夹,然后我们就能在刚刚选中的文件夹中发现有一个新创建的 learngit 空文件夹(命名时最好不要出现中文,避免出现乱码错误)

    在这里插入图片描述

    在这里插入图片描述

    1.2 在刚刚的终端中输入 cd learngit ,将当前的目录转移到新建的文件夹中

    在这里插入图片描述

  2. 通过 git init 命令把这个文件夹变成 Git 可以管理的仓库

    在这里插入图片描述

    瞬间Git就把仓库建好了,⽽且告诉你是⼀个空的仓库(empty Git repository),细⼼的 读者可以发现当前目录下多了⼀个 .git 的目录,这个目录是Git来跟踪管理版本库的,不要随意修改这个目录里的⽂件,防止 Git 仓库给破坏了。

参考文档:Git教程

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

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

相关文章

Dynamics 365 Environment Variables(环境变量)的应用

环境变量这个功能很早就有了,但最近才关注到,是个不错的功能,所以写篇介绍下它的应用。 项目里都会有配置实体这么个东西,用于存储各种常量或者与其他系统集成时的各种配置参数,以往我们都是自定义一个实体用来存放&am…

PyTorch 2.0发布了,一行代码提速76%

PyTorch 官方:我们这次的新特性太好用了,所以就直接叫 2.0 了。 前段时间,PyTorch 团队在官方博客宣布 Pytorch 1.13 发布,包含 BetterTransformer 稳定版等多项更新。在体验新特性的同时,不少人也在期待下一个版本的推…

Mysql进阶学习(十)存储过程和函数流程控制结构

Mysql进阶学习(十)存储过程和函数&流程控制结构存储过程和函数1. 存储过程1.1 创建语法1.2 调用语法1.3 删除存储过程1.4 查看存储过程的信息2. 函数2.1 创建语法2.2 调用语法2.3 查看函数2.4 删除函数3. 存储过程/函数案例4. 流程控制结构4.1. 分支…

心肺运动试验----各类参数分析笔记

1:定义 什么是心肺运动试验? 心肺运动试验(CPET)是一种可以使研究者同时观察患者的心血管系统和呼吸系统对同一种运动应激的反应情况的临床试验。因为,呼吸道的气体交换与循环相关联,可以同时反映心排血量、肺血流以及外周O2的摄…

详解设计模式:命令模式

命令模式(Command Pattern)也被称为行动模式(Action Pattern)、事物模式(Transaction Pattern),是在 GoF 23 种设计模式中定义了的行为型模式。 命令模式 是一种数据驱动的设计模式。请求以命令…

序列类型(元组()、列表[]、字符串““)、集合类型({}、set())

序列类型 组合数据类型能够将多个同类型或不同类型的数据组织起来 ,通过单一的表示使数据操作更有序更容易。根据数据之间的 关系,组合数据类型可以分为三类: 序列类型、集合类型和映射类型。 • 序列类型是一个元素向量,元素之间…

Centos8安装CDH解决不兼容问题

问题 我的配置 系统: centos8 安装包: CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz manifest.json 在 http://192.168.1.1:7180/ 上通过web分配percel时分配…

Python实现基于内容的协同过滤推荐算法构建电影推荐系统

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 基于内容(Content Based,CB)的推荐算法,根据用户过去是一段时间内喜欢的物品,由…

DHTMLX Spreadsheet JavaScript Pro 5.0

Spreadsheet — Web-Based Spreadsheet Solution 破解版DHTMLX Spreadsheet is a framework-agnostic JavaScript solution that allows you to quickly add an editable Excel-like spreadsheet on a web page. Unlike online services, DHTMLX Spreadsheet allows you to st…

Windows x64隐藏可执行内存

文章目录实现效果实现原理VAD内存什么是VAD内存查看VAD内存VAD属性VAD内存可利用的点x64分页机制W7 x64下任意地址PDT PTE算法W10 x64定位随机化页表基址实现隐藏可执行内存隐藏内存对抗实现效果 驱动程序在Test进程中申请一块内存地址并打印,然后控制台程序在接收到…

Web中的Bias(更新中)

目录前言数据偏见对人们的影响衡量偏见活跃偏差或少数人的智慧数据偏见其他参考文献前言 本文参考Ricardo Baeza-Yates 2018年发表在《Communications of the ACM》的论文Bias on the Web,论文旨在提高人们对网络使用和内容中存在的偏见对我们所有人造成的潜在影响…

Methyltetrazine-PEG4-NHS ester,甲基四嗪PEG4琥珀酰亚胺酯

一:产品描述 1、名称 英文:Methyltetrazine-PEG4-NHS ester 中文:甲基四嗪-四聚乙二醇-琥珀酰亚胺酯 2、CAS编号:1802907-92-1 3、所属分类:Tetrazine 4、分子量:533.54 5、分子式:C24H3…

qt单线程实现顺序事件的处理不卡顿技巧(IDE开发)

需求: 我现在是这样的需求,我正在开发一款嵌入式IDE中,编辑器中光标改变,右侧的符号大纲能对应的改变选中项。 这里的过程是这样的,鼠标位置改变事件函数里,通过光标行号,计算得到当前处于的符…

通过私钥连接腾讯云,实现免密远程登录

一、创建 SSH 密钥 系统提示不会保存私钥,要求用户在 10 分钟之内自行下载私钥,要保存在本地电脑和邮箱里面备用。 二、绑定密钥到云服务器 勾选刚才创建的 SSH 密钥,点击上面的绑定云主机,弹窗中要先找到你云主机的地域&#x…

【计算机毕业设计】74.家教平台系统源码

一、系统截图(需要演示视频可以私聊) 摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐…

CentosLinux 6.5安装教程

、开始安装Centos6.5:我们选择“inistall system with basic video driver” 注意:这是一种精简系统的安装模式: 1.安装或升级现有的系统; 2.安装系统并使用基本的显卡驱动; 3.进入系统修复模式; 4.从硬盘…

[附源码]Python计算机毕业设计SSM竞赛报名管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【计算机毕业设计】基于jsp网上书店(源代码+论文)

网上书店系统 1.需求分析。 参考设计要求,及可行性的分析,我们确定了如下的需求: 1.数据库设计科学合理。 2.网站主页面简洁美观,可以天蓝色为主色调。 3.网站主页显示各个分类的及总的畅销表、新书榜、推荐榜,显…

Allegro如何锁定器件操作指导

Allegro如何锁定器件操作指导 Allegro上可以锁定器件,避免误操作被移动,具体操作如下 选择fix命令 Find选择Symbols 框选需要锁定的器件 可以看到器件被锁住了 除了这个方法之外,还有另外一种方法锁定器件,选择edit-property Find选择Symbols

ADSP-21569/ADSP-21593的开发入门(中)

ADSP-21569/21593的软件准备 安装CCES软件,我装的是2.10.1,官网可以下载,我也可以提供。软件安装没什么可说的,全部下一步,软件的试用跟注册可以单独联系我。 https://www.analog.com/cn/design-center/evaluation-h…