一文搞懂GIT
文章目录
- 1. GiT概述
- 1.1 GIT概述
- 1.2 GIT安装
- 2. GIT组成
- 3. GIT基本命令
- 3.1 基本命令
- 3.2 分支操作
- 3.3 远程操作
- 3.4 标签操作
- 3.5 其他命令
1. GiT概述
1.1 GIT概述
Git 是一个分布式版本控制系统,被广泛应用于软件开发中。
Git 具有众多优点,比如:
- 分布式特性:开发人员可以在本地拥有完整的代码库历史,即使离线也能进行大部分操作。
- 强大的分支管理:创建、合并和删除分支都非常便捷,且不会影响其他分支的工作。
- 高效的协作:多个开发者可以方便地共享和合并彼此的代码更改。
例如,在一个大型团队开发项目中,不同的开发者可以基于 Git 创建自己的特性分支进行开发工作,完成后将分支合并到主分支。而且,如果在开发过程中出现错误,通过 Git 的版本回退功能,可以轻松回到之前的正确版本。
Git 的常用命令包括
git init 用于初始化一个新的代码库
git clone 用于克隆远程代码库
git add用于将更改添加到暂存区
git commit 用于提交更改等等。
1.2 GIT安装
Windows 系统:
访问 Git 官方网站(https://git-scm.com/)。
点击“Download for Windows”下载适合 Windows 的安装程序。
运行安装程序,按照默认设置进行安装,或者根据您的需求自定义安装路径等选项。
Mac 系统:
可以通过两种常见方式安装:
从 Git 官方网站下载安装包进行安装。
使用 Homebrew 命令行工具进行安装,在终端中输入 brew install git 。
Linux 系统(基于 Debian 或 Ubuntu):
在终端中输入以下命令:
sudo apt-get update
sudo apt-get install git
安装完成后,您可以在终端中输入 git --version 来验证是否安装成功,并查看安装的 Git 版本。
2. GIT组成
Git 是一个分布式版本控制系统,具有复杂但灵活的组成部分。理解 Git 的组成部分有助于你更好地利用其功能。Git 主要由以下几个核心组成部分构成:
工作区(Working Directory) 这是您直接操作和编辑文件的地方,就是您项目所在的本地目录。
**暂存区(Staging Area,也称为 Index):**工作区中的修改可以通过 git add 命令添加到暂存区,文件的当前状态会被记录到暂存区。当你执行 git commit 时,Git 会将暂存区中的文件快照作为一个新的提交保存到本地仓库。
本地仓库(Local Repository):
本地仓库是你在本地计算机上保存 Git 项目历史记录的地方。它包含了项目的所有版本历史。每次你执行 git commit 时,提交记录会被保存到本地仓库。
本地仓库主要由两个部分组成:
.git 目录:这是 Git 存储项目历史和元数据的地方。它包含了多个重要的子目录和文件:
objects:存储所有的对象(如提交、树、blob 等)。这些对象以 SHA-1 哈希值为名称进行存储。
refs:存储指向提交对象的引用,如分支和标签。常见的子目录包括 heads(本地分支)和 tags(标签)。
HEAD:指向当前检出分支的指针。它记录了当前分支或提交的位置。 config:项目的配置文件,存储有关 Git 仓库的设置,如远程仓库
URL 和分支设置。 description:存储仓库的简短描述(通常用于 GitWeb 等工具)。
远程仓库(Remote Repository):通常位于网络上的服务器上,如 GitHub、GitLab 等。可以通过 git push 将本地的提交推送到远程仓库,实现与其他开发者的代码共享和协作。
提交 (Commit)
提交是 Git 中的核心概念之一。每次你执行 git commit,Git 会将暂存区中的文件快照保存为一个新的提交。每个提交都有一个唯一的 SHA-1 哈希值,用来标识这个提交。提交包含以下信息:
树对象:代表项目的文件和目录结构。
父提交:指向前一个提交的引用(合并提交有多个父提交)。
作者信息:提交者的姓名和邮箱。
提交信息:对提交所做更改的描述。
分支 (Branch)
分支是 Git 中用于并行开发的机制。分支允许你在不影响主线开发的情况下进行实验和开发。常见的分支操作包括:
创建分支:git branch
切换分支:git checkout
合并分支:git merge
标签 (Tag)
标签是 Git 中用于标记特定提交的机制,通常用于标记发布版本或重要的里程碑。标签是一个对提交的引用,标签有两个类型:
轻量标签:简单的指针,类似于分支但不具有版本历史。
注释标签:包含额外的元数据,如标签名称、标签人和标签信息。
合并 (Merge) 和变基 (Rebase)
合并:将一个分支的更改集成到当前分支,通常使用 git merge 命令。
变基:将一个分支的更改重新应用到另一分支的顶部,通常使用 git rebase 命令。变基可以保持提交历史线性,但在处理公共分支时要小心。
3. GIT基本命令
3.1 基本命令
git init: 初始化一个新的 Git 仓库。
git clone 克隆一个远程仓库到本地。
git status 显示当前工作目录和暂存区的状态。
git add 将文件添加到暂存区。
git commit -m “message” 提交暂存区的文件到本地仓库
git log 查看提交历史。
git diff 查看文件修改的差异。
git reset 从暂存区移除文件。
3.2 分支操作
git branch 列出、创建或删除分支。
git branch # 列出本地分支
git branch <name> # 创建新分支
git branch -d <name> # 删除分支
git checkout 切换到指定的分支。
git checkout -b 创建并切换到一个新分支。
git merge 将指定的分支合并到当前分支。
3.3 远程操作
git remote -v 查看远程仓库信息。
git remote add 添加一个新的远程仓库。
git fetch 从远程仓库下载新数据,但不合并。
git pull 从远程仓库拉取数据并合并到当前分支
git push 将本地分支推送到远程仓库。
git push --set-upstream 设置上游分支并推送。
3.4 标签操作
git tag 列出所有标签。
git tag 创建一个新的标签。
git tag -d 删除一个标签。
git push origin 将标签推送到远程仓库。
3.5 其他命令
git stash 暂时保存未提交的更改。
git stash apply 恢复上次存储的更改。
git rebase 将当前分支的提交变基到指定分支上。
git cherry-pick 从一个分支中选择特定的提交并将其应用到当前分支。
git revert 创建一个新的提交以撤销指定的提交。
相关文章:
一文搞懂GIT
文章目录 1. GiT概述1.1 GIT概述1.2 GIT安装 2. GIT组成3. GIT基本命令3.1 基本命令3.2 分支操作3.3 远程操作3.4 标签操作3.5 其他命令 1. GiT概述 1.1 GIT概述 Git 是一个分布式版本控制系统,被广泛应用于软件开发中。 Git 具有众多优点,比如&#…...
jQuery入门(四)案例
jQuery 操作入门案例 一、复选框案例 功能: 列表的全选,反选,全不选功能实现。 实现步骤和分析: - 全选 1. 为全选按钮绑定单击事件。 2. 获取所有的商品项复选框元素,为其添加 checked 属性,属性值为 true。 -…...
揭秘MITM攻击:原理、手法与防范措施
中间人攻击发生时,攻击者会在通讯两端之间插入自己,成为通信链路的一部分。攻击者可以拦截、查看、修改甚至重新定向受害者之间的通信数据,而不被双方察觉。这种攻击常见于未加密的Wi-Fi网络、不安全的HTTP连接或者通过社会工程学手段诱导受害…...
【YOLOv8】一文全解+亮点介绍+训练教程+独家魔改优化技巧
前言 Hello,大家好,我是cv君,最近开始在空闲之余,经常更新文章啦!除目标检测、分类、分隔、姿态估计等任务外,还会涵盖图像增强领域,如超分辨率、画质增强、降噪、夜视增强、去雾去雨、ISP、海…...
创建mvp ubo(uniform buffer object)
创建过程: 创建一个uniform buffer查找buffer memory requirements分配、绑定buffer memorymap buffer memory拷贝mvp data to buffer memoryunmap buffer memory 示例代码: glm::mat4 projection glm::perspective(glm::radians(45.0f), 1.0f, 0.1f…...
1.GPIO
理论说明 输入 上拉输入:拉高电平 下拉输入:拉低电平 浮空输入:不拉高也不拉低电平 输出 开漏输出:不能输出高电平(P-MOS不可用,则只能低电平) 推挽输出:可输出高低电平 输出速率…...
C++必修:STL之vector的了解与使用
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. C/C中的数组 1.1. C语言中的数组 在 C 语言中,数组是一组相同类型…...
【MySQL】索引 【上】 {没有索引的查询/磁盘/mysql与磁盘IO/初识索引}
文章目录 1.没有索引存在的问题2. 认识磁盘MySQL与存储MySQL与磁盘交互基本单位建立共识图解IO认识索引 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物…...
GO goroutine状态流转
Gidle -> Grunnable newproc获取新的goroutine,并放置到P运行队列中 这也是go关键字之后实际编译调用的方法 func newproc(fn *funcval) {// 获取当前正在运行中的goroutinegp : getg()// 获取调用者的程序计数器地址,用于调试和跟踪pc : getcallerp…...
DLMS/COSEM中的信息安全:DLMS/COSEM安全概念(上)
DLMS/COSEM中的信息安全描述并规定: ——DLMS/COSEM安全概念; ——选择加密算法; ——安全密钥; ——使用加密算法进行实体认证、xDLMS APDU保护和COSEM数据保护。 1.综述 DLMS/COSEM服务器的资源(COSEM对象属性和方法)可以由在应用连接内的DLMS/COSEM客户机访问。 在AA…...
C语言第九天笔记
数组的概念 什 么是数组 数组是 相同类型, 有序数据的集合。 数 组的特征 数组中的数据被称为数组的 元素,是同构的 数组中的元素存放在内存空间里 (char player_name[6]:申请在内存中开辟6块连续的基于char类 型的变量空间) 衍生概念&…...
智慧环卫可视化:科技赋能城市清洁管理
图扑智慧环卫可视化通过实时监控、数据分析和智能调度,提高环卫作业效率,优化资源配置,提升城市清洁水平,实现城市管理的精细化和现代化。...
【力扣】SQL题库练习5
高级查询和连接 1341.电影评分 表:Movies ------------------------ | Column Name | Type | ------------------------ | movie_id | int | | title | varchar | ------------------------ movie_id 是这个表的主键(具有唯一值的列)。 ti…...
永结无间Ⅸ--你不需要LLM Agent
人们将目光锁定在下一个闪亮的事物上。FOMO 是人性的一部分。这也适用于企业。就像数据科学成为每个企业分析功能的热潮一样,Agentic Architecture 是大多数 AI 雷达上的热门目标。 但您是否考虑过您是否真的需要它? 实际情况是,您不需要 A…...
Simulink|基于粒子群算法的永磁同步电机多参数辨识
目录 主要内容 模型研究 结果一览 下载链接 主要内容 仿真程序参考文献《改进粒子群算法的永磁同步电机多参数辨识》,采用粒子群算法与simulink模型结合的方式,对永磁同步电机进行多参数辨识。程序以定子绕组电阻、d轴电感、q轴电感和永磁…...
程序如何自动点击亚马逊商户后台的“邀请评论”按钮
要在亚马逊上自动点击“邀请评论”按钮,可以使用自动化脚本来实现。由于你希望自动化操作,我提供一个示例代码,使用 Selenium WebDriver 来执行这个任务。Selenium 是一个流行的浏览器自动化工具,能够模拟用户操作,例如…...
大模型算法面试题(十八)
本系列收纳各种大模型面试题及答案。 1、P-tuning v2 思路、优缺点是什么 P-tuning v2是清华大学自然语言处理实验室(THUDM)等研究机构提出的一种新的预训练模型优化方法,主要关注如何通过动态构建任务相关的提示序列来引导预训练模型进行更…...
手机在网状态接口如何对接?(二)
一、什么是手机在网状态? 传入手机号码,查询该手机号的在网状态,返回内容有正常使用、停机、在网但不可用、不在网(销号/未启用/异常)、预销户等多种状态。 二、手机在网状态使用场景? 1.用户验证与联系…...
力扣-3232. 判断是否可以赢得数字游戏
给你一个 正整数 数组 nums。 Alice 和 Bob 正在玩游戏。在游戏中,Alice 可以从 nums 中选择所有个位数 或 所有两位数,剩余的数字归 Bob 所有。如果 Alice 所选数字之和 严格大于 Bob 的数字之和,则 Alice 获胜。 如果 Alice 能赢得这场游…...
Table SQL connectors以及FileSystem、JDBC connector
目录 Flink支持的连接器 如何使用连接器 FileSystem SQL Connector 文件格式 分区文件 Source 目录监控 元数据 Streaming Sink 滚动策略 文件合并 JDBC SQL Connector 依赖 如何创建JDBC表 连接器配置 案例 pom依赖 代码 测试 Flink的Table API和SQL…...
Animate软件基础:“分散到图层”创建的新图层
FlashASer:AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084 FlashASer:实用的各种Adobe Animate软件教程https://zhuanlan.zhihu.com/p/675680471 FlashASer:Animate教程及作品源文件https://zhuanlan.zhihu.co…...
ffmpeg命令-Windows下常用最全
查询命令 参数 说明 -version 显示版本。 -formats 显示可用的格式(包括设备)。 -demuxers 显示可用的demuxers。 -muxers 显示可用的muxers。 -devices 显示可用的设备。 -codecs 显示libavcodec已知的所有编解码器。 -decoders 显示可用…...
反序列化漏洞靶机实战-serial
一.安装靶机 下载地址为https://download.vulnhub.com/serial/serial.zip,安装好后开启靶机,这里并不需要我们去登录,直接扫描虚拟机nat模式下c网段的ip,看看哪个的80端口开放,然后直接去访问 二.查找cookie 访问靶…...
医疗器械产品没有互联网连接,就不适用于网络安全要求吗?
医疗器械产品是否不适用于网络安全要求,需要考虑产品是否具有网络连接功能以进行电子数据交换或远程控制,以及是否采用储存媒介进行电子数据交换。详细解析如下: 一、医疗器械的网络安全要求不仅限于互联网连接 数据交换接口:医疗…...
可视掏耳勺安全吗?独家揭示六大风险弊病!
很多人习惯在洗漱完顺手拿一根棉签掏耳朵,但是棉签的表面直径大且粗糙,不易将耳朵深处的耳垢挖出,耳垢堆积在耳道深处长时间不清理会导致堵塞耳道,引起耳鸣甚至感染。而可视掏耳勺作为一种新型的挖耳工具,它的安全性也…...
JavaScript 变量声明var、let、const
在 JavaScript 中,var、let和const是用于声明变量的关键字。 let和const是JavaScript里相对较新的变量声明方式。 let用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 const声明一个只读的常量。一旦声明,常量的…...
ipvlan: operation not supported 导致的POD不断重启
情况描述 接到反馈有一台虚拟机HA迁移了,需要检查一下上面业务是否正常,由于是K8S node节点,正常情况下重启会自动恢复的,不过抱着严谨的态度,上去看了一眼。 问题:发现docker运行正常,但是业…...
组蛋白乳酸化和RNA甲基化如何联动?请大数据把这个思路推给科研人
在细胞生物学中,基因表达调控是决定细胞功能与命运的核心过程之一。组蛋白作为修饰性蛋白,在调控基因转录中起着至关重要的作用。近年来,科学家们发现,组蛋白的多种化学修饰(如甲基化、乙酰化、磷酸化等)影…...
操作文件-Path
Java操作文件-Path Paths 参数说明 first:必选参数,表示路径的第一个组件。more:可选参数,表示路径的其他组件,可以传入多个。 创建路径对象 // 创建一个表示当前工作目录的Path对象 Path currentPath Paths.get…...
RAC(Teamcenter )开发,Bom行解包和打包的方法
1、打包 UnpackAllAction allAction new UnpackAllAction((AbstractBOMLineViewerApplication) currentApplication, "packAllAction"); new Thread(allAction).start();2、解包 UnpackCommand command new UnpackCommand(bomLine); command.executeModal();3、注…...
沈阳微网站建设/seo是对网站进行什么优化
文章目录initsummary适用领域优劣点C 语言认知各种语言底层的理解可以从事的岗位和要求的技术栈过去,现在和未来的发展趋势init summary 主要是对比了各种其他语言,明确了C在编译器上和底层内存模型的优势上建立了高性能低延时领域的绝对优势,但是在底…...
通辽网站建设/友情链接怎么弄
通过ftp通道将数据传出来。上传1.xml <!DOCTYPE xmlrootname [<!ENTITY % aaa SYSTEM "http://192.168.172.128:1234/ext.dtd"><!ENTITY % bbb SYSTEM "file:///E:///1.txt">%aaa;%ccc;%ddd;]> ext.dtd内容如下 <!ENTITY % ccc "…...
smartgov政府网站管理系统破解版/seo引擎优化专员
用过VS2005,VS2008,再用VS2010的会发现,VS2010中MFC向导生成的单文档/多文档菜单字体与VS2005和VS2008不同;VS2005和VS2008中看起来很清晰,但是在VS2010版本中字体就很小,不清楚,下面提供解决方…...
永州祁阳网站建设/新开网店自己如何推广
问题描述:在linux shell中如何处理tail -n 10 access.log这样的命令行选项?在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景。1,直接处理,依次对$1,$2,...,$n进行解析,…...
网站服务器租赁/搜索引擎推广的三种方式
说一下static关键字的作用 1. 全局静态变量 在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。 静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0。作用域:全局静态…...
现在可以做网站么/seo搜索是什么意思
题目:http://acm.hdu.edu.cn/showproblem.php?pid1051 经典的贪心题,按照l,w排好序后进行扫描标记,注意逻辑即可。 #include <iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespac…...