【Git】分布式版本控制工具
一、简介
二、目标
Git分布式版本控制工具
一、简介
Git是一种分布式版本控制系统,用于跟踪和管理源代码的变化。它由林纳斯·托瓦兹(Linus Torvalds)于2005年开发,并迅速成为最流行的版本控制工具之一。以下是关于Git的一些关键点:
核心概念
-
分布式版本控制:与集中式版本控制系统(如Subversion或CVS)不同,Git的每个用户都有整个项目的完整历史记录。这意味着即使没有网络连接,用户也可以进行提交、查看历史记录等操作。
-
仓库(Repository):存储项目的目录。它包含所有文件的当前版本、历史版本以及Git用于管理这些版本的所有元数据。
-
分支(Branch):项目的并行版本,用于开发新功能或修复错误。Git允许快速切换分支和合并分支。
-
提交(Commit):保存文件的一个快照。每次提交都有一个唯一的SHA-1哈希值标识,并包含提交信息(如作者、日期、描述等)。
-
合并(Merge):将一个分支的变化合并到另一个分支中,通常用于将新功能或修复合并到主分支。
-
克隆(Clone):创建远程仓库的本地副本。用户可以在本地仓库中进行开发,并在完成后将更改推送回远程仓库。
-
拉取(Pull)和推送(Push):拉取操作从远程仓库获取更新,推送操作将本地更改发送到远程仓库。
基本操作
- 初始化仓库:
git init - 克隆仓库:
git clone <repository-url> - 添加文件到暂存区:
git add <file> - 提交更改:
git commit -m "Commit message" - 查看状态:
git status - 查看历史记录:
git log - 创建分支:
git branch <branch-name> - 切换分支:
git checkout <branch-name> - 合并分支:
git merge <branch-name> - 推送到远程仓库:
git push <remote> <branch> - 从远程仓库拉取更新:
git pull <remote> <branch>
优势
- 分布式架构:提高了系统的弹性和可靠性。
- 高效的分支和合并:使并行开发变得容易。
- 强大的社区支持:有丰富的资源和扩展工具,如GitHub、GitLab等。
常用工具
- GitHub:托管和管理Git仓库的云平台,提供协作和代码审查功能。
- GitLab:类似于GitHub,支持私有仓库和持续集成/持续部署(CI/CD)。
- Bitbucket:另一个流行的Git仓库托管服务,特别支持Mercurial。
Git的强大和灵活性使其成为现代软件开发中不可或缺的工具。无论是个人项目还是大型团队协作,Git都能提供高效的版本控制和协作功能。
二、目标
1、了解 Git 基本概念
- 版本控制系统:用于管理项目源代码的不同版本,跟踪代码变更历史。
- 分布式:每个开发者都持有项目的完整历史记录,便于离线操作和协作。
- 仓库(Repository):存储项目的目录,包括所有版本的文件和元数据。
- 分支(Branch):项目的并行版本,用于开发新功能或修复错误。
- 提交(Commit):保存文件的一个快照,每次提交都有一个唯一的SHA-1哈希值标识。
- 暂存区(Staging Area):一个临时区域,用于存放即将提交的文件快照。
- 远程仓库(Remote Repository):托管在云端或服务器上的仓库,用于团队协作。
2、Git 工作流程概述
- 克隆仓库(Clone Repository):从远程仓库创建本地副本。
git clone <repository-url> - 创建新分支(Create Branch):为新功能或修复创建分支。
git checkout -b <branch-name> - 修改文件(Modify Files):在本地进行开发和修改。
- 添加到暂存区(Stage Changes):将修改添加到暂存区。
git add <file> - 提交更改(Commit Changes):将暂存区的修改提交到本地仓库。
git commit -m "Commit message" - 推送到远程仓库(Push to Remote Repository):将本地提交推送到远程仓库。
git push origin <branch-name> - 拉取远程更新(Pull Remote Changes):从远程仓库拉取更新到本地。
git pull origin <branch-name> - 合并分支(Merge Branch):将其他分支的修改合并到当前分支。
git checkout <target-branch> git merge <source-branch>
3、常用 Git 命令
- 初始化仓库:
git init - 克隆仓库:
git clone <repository-url> - 查看状态:
git status - 查看历史记录:
git log - 创建分支:
git branch <branch-name> - 切换分支:
git checkout <branch-name> - 合并分支:
git merge <branch-name> - 查看分支:
git branch - 删除分支:
git branch -d <branch-name> - 推送到远程仓库:
git push origin <branch-name> - 从远程仓库拉取更新:
git pull origin <branch-name>
4、熟悉 Git 代码托管服务
- GitHub:全球最流行的代码托管平台,提供代码托管、协作、代码审查等功能。
- GitLab:提供类似于GitHub的功能,支持私有仓库和CI/CD。
- Bitbucket:另一个流行的代码托管服务,支持Git和Mercurial。
5、使用 IntelliJ IDEA 操作 Git
-
安装和设置 Git:
- 确保已安装Git并配置环境变量。
- 在IDEA中,进入
File > Settings > Version Control > Git,设置Git可执行文件路径。
-
克隆仓库:
- 打开 IDEA,选择
VCS > Get from Version Control。 - 输入仓库URL,选择本地目录,然后点击
Clone。
- 打开 IDEA,选择
-
创建和切换分支:
- 在右下角分支栏点击当前分支,选择
New Branch创建新分支。 - 要切换分支,选择
Checkout.
- 在右下角分支栏点击当前分支,选择
-
提交更改:
- 修改文件后,右键点击文件或选择
VCS > Git > Commit。 - 输入提交信息,点击
Commit。
- 修改文件后,右键点击文件或选择
-
推送和拉取:
- 提交后选择
VCS > Git > Push推送到远程仓库。 - 选择
VCS > Git > Pull从远程仓库拉取更新。
- 提交后选择
通过这些步骤,你可以高效地使用Git和IntelliJ IDEA进行版本控制和团队协作。
相关文章:
【Git】分布式版本控制工具
一、简介 二、目标 Git分布式版本控制工具 一、简介 Git是一种分布式版本控制系统,用于跟踪和管理源代码的变化。它由林纳斯托瓦兹(Linus Torvalds)于2005年开发,并迅速成为最流行的版本控制工具之一。以下是关于Git的一些关键…...
排序之插入排序----直接插入排序和希尔排序(1)
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 排序之插入排序----直接插入排序和希尔排序(1) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记,欢迎大家在评论区交流讨…...
快速创建条形热力图
Excel中的条件格式可以有效的凸显数据特征,如下图中B列所示。 现在需要使用图表展现热力条形图,如下图所示。由于颜色有多个过渡色,因此手工逐个设置数据条的颜色,基本上是不可能完成的任务,使用VBA代码可以快速创建这…...
go switch 与 interface
go switch 与 interface 前言 前言 github.com/google/cel-go/common/types/ref type Val interface {// ConvertToNative converts the Value to a native Go struct according to the// reflected type description, or error if the conversion is not feasible.ConvertTo…...
BaseMapper 接口介绍
基于 mybatis-mapper/provider 核心部分实现的基础的增删改查操作,提供了一个核心的 io.mybatis.mapper.BaseMapper 接口和一个 预定义 的 io.mybatis.mapper.Mapper 接口,BaseMapper 接口定义如下: /*** 基础 Mapper 方法,可以在…...
HAL-Cubemax定时器使用记录
title: HAL-Cubemax定时器使用记录 tags: STM32HalCubemax 文章目录 HAL-Cubemax定时器使用记录分享一种思路1.创建一个ms(毫秒)级延时中断2.创建计数的变量3.在需要延时的函数中对变量阈值进行判断4.验证实例--完整使用记录代码 问题往期内容基础库HAL cubemax VSCODE GCC …...
同时使用磁吸充电器和Lightning时,iPhone充电速度会变快吗?
在智能手机的世界里,续航能力一直是用户关注的焦点。苹果公司以其创新的MagSafe技术和传统的Lightning接口,为iPhone用户提供了多样化的充电解决方案。 然而,当这两种技术同时使用时,它们能否带来更快的充电速度?本文…...
零成本搭建个人图床服务器
前言 图床服务器是一种用于存储和管理图片的服务器,可以给我们提供将图片上传后能外部访问浏览的服务。这样我们在写文章时插入的说明图片,就可以集中放到图床里,既方便多平台文章发布,又能统一管理和备份。 当然下面通过在 Git…...
SpringBoot 搭建sftp服务 实现远程上传和下载文件
maven依赖: <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version> </dependency>application.yml sftp:protocol: sftphost: port: 22username: rootpassword: sp…...
IDEA中使用leetcode 刷题
目录 1.IDEA下载leetcode插件 2.侧边点开插件 3.打开网页版登录找到cookie复制 4.回到IDEA登录 5.刷题 6.共勉 1.IDEA下载leetcode插件 2.侧边点开插件 3.打开网页版登录找到cookie复制 4.回到IDEA登录 5.刷题 6.共勉 算法题来了不畏惧, 挑战前行是成长的舞台…...
华为海思CPU解读
安全可靠CPU测评结果(华为海思篇) 中国信息安全测评中心于2024年5月20日发布安全可靠测评结果公告(2024年第1号),公布依据《安全可靠测评工作指南(试行)》的测评结果,自发布起有效期…...
中介子方程三十三
XXFXXuXXWXXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXdXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXXWXXuXXFXXEXXyXXEXXrXXαXXuXpXXdXXpXuXXαXXrXXEXXyXXαXiXXαXiXrXkXtXyXXpXVXXdXuXWX…...
今年哪两个行业可能有贝塔?
银行和综合板块存在比较明显的行业贝塔,背后原因是:银行板块中,最小的几家银行市值也不小;综合板块中,最大的几家市值也不大。 一、今年哪两个行业可能有贝塔? 我们一直强调今年市场呈现出【行业弱beta、风…...
嵌入式软件开发工具使用介绍
软件开发工具 辅助开发工具 硬件工具与仪器设备 逻辑分析仪使用 串口数据解码分析 示波器使用 1.示波器简介 TBS 1052B(Tektronix)系列数字存储示波器在紧凑的设计中提供了经济的性能。 由于多种标配功能, 包括 USB 连接、34 种自动测量、…...
【TB作品】MSP430G2553,单片机,口袋板, 交通灯控制系统
题8 交通灯控制系统 十字路口交通灯由红、绿两色LED显示器(两位8段LED显示器)组成,LED显示器显示切换倒计时,以秒为单位,每秒更新一次;为确保安全,绿LED计数到0转红,经5秒延时&#…...
windows 安装 Kubernetes(k8s)
windows 安装 docker 详情见: https://blog.csdn.net/sinat_32502451/article/details/133026301 minikube Minikube 是一种轻量级的Kubernetes 实现,可在本地计算机上创建VM 并部署仅包含一个节点的简单集群。 下载地址:https://github.…...
C语言 | Leetcode C语言题解之第189题轮转数组
题目: 题解: void swap(int* a, int* b) {int t *a;*a *b, *b t; }void reverse(int* nums, int start, int end) {while (start < end) {swap(&nums[start], &nums[end]);start 1;end - 1;} }void rotate(int* nums, int numsSize, int…...
【安全审核】音视频审核开通以及计费相关
融云控制台音视频审核入口:音视频审核 1 音视频审核文档:融云开发者文档 1 提示: 开发环境: 免费体验 7 天(含 21 万分钟音频流和 420 万张视频审核用量),免费额度用尽后,将关停服务…...
【实战】Spring Cloud Stream 3.1+整合Kafka
文章目录 前言新版版本优势实战演示增加maven依赖增加applicaiton.yaml配置新增Kafka通道消费者新增发送消息的接口 实战测试postman发送一个正常的消息postman发送异常消息 前言 之前我们已经整合过Spring Cloud Stream 3.0版本与Kafka、RabbitMQ中间件,简直不要太…...
java之可变字符串之append方法
可变字符串如果要添加内容,需要用到append方法 语法格式如下 sbf.append(obj) 其中sbf是任意的可变字符串 obj是任意数据类型的对象 这个方法是将任意数据转换成字符串,然后添加到此序列中 public class Buffer {public static void main(String[]…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
