分布式版本控制系统:Git

1 Git概述

Git官网:https://git-scm.com/

  • Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目
  • Git易于学习,占地面积小,性能极快。它具有廉价的本地库、方便的暂存区域和多个工作流分支等特性
1.1 何为版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统

版本控制其实最重要的是可以记录文件修改历史纪录,从而让用户能够查看历史版本

1.2 为什么需要版本控制

个人开发过渡到团队协作

1.3 版本控制工具
(1)集中式版本控制工具

如CVS、SVN、VSS……

集中化的版本控制系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或提交更新

  • 好处:每个人都可以在一定程度上看到项目中其他人正在做些什么,而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易
  • 缺点:中央服务器的单点故障。
(2)分布式版本控制工具

如Git、Dares……

分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)这样任何一处协同工作的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复,因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
1.4 Git工作机制

在这里插入图片描述

一旦生成历史版本就不能删除了

1.5 Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般简单称为远程库

  • 局域网:GitLab
  • 互联网:GitHub、Gitee

2 Git安装

略……

3 Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭
3.1 设置用户签名
1)基本语法

git config --global user.name 用户名

git config --global user.email 邮箱

2)说明

Git首次安装必须设置一下用户签名,否则无法提交代码

这里设置的用户签名和登录GitHub(或其他代码托管中心)的账号没有任何关系

3.2 初始化本地库
1)基本语法

git init

2)结果

生成一个 .git 的隐藏文件夹

  • git status:查看当前状态
3.3 添加暂存区
1)基本语法

git add 文件名

2)删除暂存区中的文件

git rm --cached 文件名

3.4 提交本地库

将暂存区的文件提交到本地库

1)基本语法

git commit -m “日志信息” 文件名

3.4 修改文件

修改后的文件没有添加到暂存区

3.5 版本穿梭
1)查看版本 基本语法

git reflog:查看版本信息

git log:查看版本详细信息

2)版本穿梭 基本语法

git reset --hard 版本号

4 Git分支操作

4.1 什么是分支

在版本控制过程中,同时推进多个任务,我们就可以为每个任务创建单独的分支。

使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行

4.2 分支的好处·

同时并行推进多个功能开发,提高开发效率

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可

4.3 分支的操作
4.3.1 基本命令
命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定分支合并到当前分支上
4.3.2 合并分支(正常合并)

直接通过 git merge 分支名 合并

4.3.3 合并分支(冲突合并)

产生冲突的原因:合并分支时,两个分支在同一文件有两种不同的修改

此时,Git无法替我们决定使用哪一个,必须人为决定新代码内容

修改内容后需要重新执行add和commit命令,仅修改了当前分支的内容

5 GitHub操作

5.1 推送本地分支到远程仓库

git push 远程仓库地址/别名 分支

5.2 将远程仓库项目拉取到本地

git pull 远程仓库地址/别名 分支

拉取操作会自动提交本地库

5.3 克隆远程仓库到本地

git clone 远程仓库地址

5.4 邀请加入团队

GitHub仓库中:

settings → Collaborators → add people → 输入邮箱即可添加成员,然后复制邀请链接,被邀请者可以通过邀请链接加入团队

5.5 跨团队协作

GitHub中右上角的fork……

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【leetcode】T1599

解题心得: 题目长且绕,直接看测试样例的解析有助于更快把握题目核心需求(即关注样例的输入、运算逻辑、输出) 题面 原题链接1599. 经营摩天轮的最大利润 - 力扣(LeetCode) AC代码 class Solution { pub…

能说说MyBatis的工作原理吗?

大家好,我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助; 能说说MyBatis的工作原理吗? MyBatis 是一款流行的持久层框架,它通过简化数据库操作,帮助开发者更高效地与数据库进行交互。MyBatis…

Oracle Primavera P6 最新版 v24.12 更新 1/2

目录 引言 P6 PPM 更新内容 1. 在提交更新基线前预览调整 2. 快速轻松地取消链接活动 3. 选择是否从 XER 文件导入责任经理 4. 提高全局变更报告的清晰度 5. 将整个分层代码值路径导出到 CPP 6. 里程碑活动支持所有关系类型 6. 时间表批准 7. 性能改进 8. 安装改进 …

ORA-04031 错误

ORA-04031 错误表示 Oracle 数据库无法在共享池中分配所需的内存。共享池是 SGA(系统全局区)的一部分,用于缓存SQL语句、PL/SQL存储过程和控制结构等。此错误通常与数据库的内存管理有关,可能由于共享池大小不足或存在内存碎片导致…

SpringBoot 中的测试jar包knife4j(实现效果非常简单)

1、效果图 非常快的可以看见你实现的接口 路径http://localhost:8080/doc.html#/home 端口必须是自己的 2、实现效果 2.1、导入jar包 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-star…

2024年记 | 凛冬将至

放弃幻想&#xff0c;准备斗争&#xff01; 考研or就业&#xff1f; 上大学以来&#xff0c;考研上名校在我的心里一直是一颗种子&#xff0c;2024年初&#xff0c;当时的想法是考研和就业两手抓。买了张宇的高数现代&#xff0c;想要死磕&#xff01; 也记了挺多笔记... 如果…

【实践案例】使用Dify构建文章生成工作流【在线搜索+封面图片生成+内容标题生成】

文章目录 概述开始节点图片封面生成关键词实时搜索主题参考生成文章详情和生成文章标题测试完整工作流运行测试结果 概述 使用Dify构建文章生成工作流&#xff0c;使用工具包括&#xff1a;使用 Tavily 执行的搜索查询&#xff0c;使用Flux生成封面图片&#xff0c;使用Stable…

Linux线程安全

文章目录 &#x1f96d;Linux线程互斥进程线程间的互斥相关背景概念互斥锁mutex互斥锁的接口互斥锁实现原理探究 &#x1f34d;可重入VS线程安全概念常见的线程不安全的情况常见的线程安全的情况常见的不可重入的情况常见的可重入的情况可重入与线程安全联系可重入与线程安全区…

csapp2.4节——浮点数

目录 二进制小数 十进制小数转二进制小数 IEEE浮点表示 规格化表示 非规格化表示 特殊值 舍入 浮点运算 二进制小数 类比十进制中的小数&#xff0c;可定义出二进制小数 例如1010.0101 小数点后的权重从-1开始递减。 十进制小数转二进制小数 整数部分使用辗转相除…

在php中怎么打开OpenSSL

&#xff08;点击即可进入聊天助手&#xff09; 背景 在使用php做一些项目时,有用到用户邮箱注册等,需要开启openssl的能力 在php系统中openssl默认是关闭状态的,在一些低版本php系统中,有的甚至需要在服务器终端后台,手动安装 要打开OpenSSL扩展&#xff0c;需要进行以下步骤 …

Rust语言进阶之zip用法实例(九十五)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

[权限提升] Windows 提权 — 系统内核溢出漏洞提权

关注这个框架的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;系统内核溢出漏洞提权介绍 注意&#xff1a;提权很容易让电脑蓝屏&#xff0c;所以如果是测试的话&#xff0c;提权前最好做好系统备份。 溢出漏洞就像是往杯子里装水 —— 如…

Windows11 安装poetry

使用powershell安装 (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py - 如果使用py运行失败则替换为python即可 终端运行结果如下 D:\AI\A_Share_investment_Agent> (Invoke-WebRequest -Uri https://install.python-poetry.…

系统思考—心智模式

“我们的大脑对连贯性的渴望远胜于对准确性的追求。”—诺贝尔经济学得主丹尼尔卡尼曼 在面对复杂的决策时&#xff0c;我们往往更倾向于寻找那些能够迅速串联起来的信息&#xff0c;而非深入挖掘每一个细节的真实性。这种倾向在日常生活中或许能帮助我们迅速作出决策&#xf…

基于ollama,langchain,springboot从零搭建知识库三【解析文档并存储到向量数据库】

安装环境 安装pgvector&#xff0c;先设置docker镜像源&#xff1a; vim /etc/docker/daemon.json {"registry-mirrors": ["https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com","https://mirror.ccs.tencentyun.com",&…

Mac m1,m2,m3芯片使用nvm安装node14报错

使用nvm安装了node 12/16/18都没有问题&#xff0c;到14就报错了。第一次看到这个报错有点懵&#xff0c;查询资料发现是Mac芯片的问题。 Issue上提供了两个方案&#xff1a; 1、为了在arm64的Mac上安装node 14&#xff0c;需要使用Rosseta&#xff0c;可以通过以下命令安装 …

学习数据结构(2)空间复杂度+顺序表

1.空间复杂度 &#xff08;1&#xff09;概念 空间复杂度也是一个数学表达式&#xff0c;表示一个算法在运行过程中根据算法的需要额外临时开辟的空间。 空间复杂度不是指程序占用了多少bytes的空间&#xff0c;因为常规情况每个对象大小差异不会很大&#xff0c;所以空间复杂…

使用 KNN 搜索和 CLIP 嵌入构建多模态图像检索系统

作者&#xff1a;来自 Elastic James Gallagher 了解如何使用 Roboflow Inference 和 Elasticsearch 构建强大的语义图像搜索引擎。 在本指南中&#xff0c;我们将介绍如何使用 Elasticsearch 中的 KNN 聚类和使用计算机视觉推理服务器 Roboflow Inference 计算的 CLIP 嵌入构建…

知识库管理驱动企业知识流动与工作协同创新模式

内容概要 知识库管理在现代企业中扮演着至关重要的角色&#xff0c;其价值不仅体现在知识的积累&#xff0c;还在于通过优质的信息流动促进协作与创新。有效的知识库能够将分散的信息整合为有序、易于访问的资源&#xff0c;为员工提供实时支持&#xff0c;进而提升整体工作效…

十年筑梦,再创鲸彩!庆祝和鲸科技十周年

2025 年 1 月 16 日&#xff0c;“十年筑梦&#xff0c;再创鲸彩” 2025 和鲸科技十周年庆暨 2024 年终表彰大会圆满落幕。 十年征程&#xff0c;和鲸科技遨游于科技蓝海&#xff0c;破浪前行&#xff0c;无惧风雨。期间所取得的每一项成就&#xff0c;都凝聚着全体成员的智慧结…