【Git详细讲解-必看】

Git详细介绍-必看

  • 1. 介绍
  • 2. 核心概念
  • 3. Git的基本操作
  • 4. 高级功能

1. 介绍

Git是一个分布式版本控制系统,由Linus Torvalds在2005年创建,最初的目的是为了更好地管理Linux内核的开发,Git如今已经成为世界上最受欢迎的版本控制系统之一,它在全球范围内被众多开发者和团队用于软件开发项目中。

2. 核心概念

  1. 版本控制系统(Version Control System,VCS):帮助你追踪代码变更的历史记录,可以回溯到任何一个提交(commit)的状态,也可以格式化共享代码的修改和合并。

  2. 分布式版本控制(Distributed Version Control System,DVCS):与集中版本控制的区别在于客户端不仅仅是检出(checkout)最新的代码快照,而是完整地镜像整个仓库,包含代码的整个历史记录。

  3. 仓库(Repository):存储代码及其历史记录的位置。可以本地存储,如一个电脑上的文件夹,也可以远程存储,如托管在GitHub或GitLab上的项目。

  4. 提交(Commit):在Git中,一次提交记录的是一次完整的项目状态变更。每次提交都会有一个唯一的ID(通常是一个SHA-1哈希)来标识。

  5. 分支(Branch):开发新功能时经常使用分支来隔离改动,不同开发者可以在不同的分支上工作,隔离各自的修改。

  6. 合并(Merge)和冲突(Conflict):将一个分支的改动整合到另一个分支时进行的操作。如果不同分支对同一处代码都进行了修改,可能会发生冲突,需要人工解决。

  7. 检出(Checkout):切换到不同分支或历史中的某一次提交。

  8. 克隆(Clone):复制一个Git仓库到新的目录中,完整地拷贝所有版本的历史。

  9. 拉取(Pull)和推送(Push):将本地的变更同步到远端仓库(push),或者将远端仓库的变更拉取到本地(pull)。

3. Git的基本操作

  • 配置Git

    git config --global user.name "Your Name"
    git config --global user.email "youremail@example.com"
    
  • 初始化一个新的Git仓库

    git init
    
  • 克隆一个现有的仓库

    git clone <repository-url>
    
  • 添加文件到暂存区

    git add <filename>
    git add .
    
  • 提交更改

    git commit -m "Commit message"
    
  • 查看状态

    git status
    
  • 查看提交历史

    git log
    git log --oneline
    
  • 创建分支

    git branch <branch-name>
    
  • 切换分支

    git checkout <branch-name>
    
  • 合并分支

    git merge <branch-name>
    
  • 拉取远程仓库的变更

    git pull <remote> <branch>
    
  • 推送变更到远程仓库

    git push <remote> <branch>
    
  • 处理冲突
    当Git无法自动合并分支时,会标记出产生冲突的文件,需要手动编辑这些文件来解决冲突,并重新提交。

4. 高级功能

  • 变基(Rebase):另一种合并分支的方法,它会变更提交历史。

  • 标签(Tag):用于标记特定的提交,常用于版本发布。

  • 钩子(Hooks):自定义脚本,可以在特定的重要动作发生时运行。

  • 子模块(Submodules):引用其他Git仓库作为项目的一部分。

  • 回滚(Revert / Reset):撤销之前的提交。

  • 储藏(Stash):临时保存未完成的更改。

Git的特点主要体现在它的速度,数据的完整性以及分支系统,由于其分布式的特性,每个开发者的工作都是与其他开发者隔离的,这加强了协同工作的效能,使用Git可以更容易地合并分支,并且可以选择性地合并或拒绝提交,此外,Git的安全性体现在对文件内容和关系的加密哈希函数SHA-1的使用上,确保代码不易受到损坏或丢失。

Git具有很高的灵活性,支持多种工作流程,比如集中式工作流、Feature分支工作流、Gitflow工作流、Forking工作流等,这为不同规模的团队合作提供了便利。

作为开发者,掌握Git非常重要,它是软件开发中重要的一环,有助于代码的版本控制与团队协作。随着时间的发展,许多基于Git的服务和平台,如GitHub、GitLab和Bitbucket等,为代码的托管、审查与发布提供了更为丰富的功能和集成。

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

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

相关文章

《AcWing第147场周赛》 牛的语言学(递推) / 孤立点数量(并查集)

文章目录 牛的语言学考察知识&#xff1a;递推 题目链接题目描述思路具体代码及注释 孤立点数量考察知识&#xff1a;并查集 题目链接题目描述思路分析 在这里插入图片描述代码及注释 牛的语言学 考察知识&#xff1a;递推 题目链接 https://www.acwing.com/problem/content…

【网络原理】TCP协议详细解析

文章目录 &#x1f332;TCP协议的概念&#x1f338;TCP协议段格式&#x1f338;TCP的特性 &#x1f333;TCP原理详解&#x1f338;确认应答机制&#xff08;安全机制&#xff09;&#x1f338;超时重传机制&#xff08;安全机制&#xff09;&#x1f338;连接管理&#xff08;安…

C++ 中的虚函数和多态性

C 是一种高级编程语言&#xff0c;它具有面向对象编程的特性。在 C 中&#xff0c;虚函数和多态性是非常重要的概念&#xff0c;它们使得继承关系更加灵活和强大。 虚函数是在基类中声明为虚函数的成员函数&#xff0c;其作用是在运行时动态绑定函数的调用。当在派生类中重写基…

【软考高项】七、信息技术发展之存储、数据库、信息安全

1、存储知识点 存储类型分&#xff1a;封闭式&#xff08;小型机&#xff09;和开放式&#xff08;服务器&#xff09; 其中开放式又分内置和外挂存储&#xff08;直连DAS、网格FAS&#xff08;NAS/SAN&#xff09;&#xff09; 2、数据库知识点 数据结构模型&#xff1a; …

【晴问算法】入门篇—贪心算法—最大组合整数

题目描述 现有0~9中各个数的个数&#xff0c;将它们组合成一个整数&#xff0c;求能组合出的最大整数。 输入描述 在一行中依次给出0-9中各个数的个数&#xff08;所有个数均在0-100之间&#xff09;。数据保证至少有一个数的个数大于0。 输出描述 输出一个整数&#xff0c;表示…

Python网络爬虫内容介绍

Python爬虫是使用Python语言编写的网络爬虫程序&#xff0c;用于从互联网上自动抓取、解析和处理数据。爬虫可以模拟人类的行为&#xff0c;自动访问网页、提取所需信息&#xff0c;并将这些信息保存到本地或数据库中&#xff0c;以供后续分析和使用。 Python爬虫的内容主要包…

MyBatisPlus 之一:Spring 整合 MyBatisPlus 及雪花算法

1. Mybatis-Plus简介 Mybatis-Plus&#xff08;简称MP&#xff09;是一个 Mybatis 的增强工具&#xff0c;在 Mybatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。这是官方给的定义&#xff0c;关于mybatis-plus的更多介绍及特性&#xff0c;可以参考http…

【NC14399】素数判断

题目 素数判断 分解质因数 思路 题目很直接&#xff0c;给你一个数&#xff0c;判断其是不是素数&#xff0c;如果是&#xff0c;输出一句话和它本身&#xff0c;如果不是&#xff0c;输出一句话和它的质因数&#xff0c;需要注意的是质因数要从小到大输出。 我们知道&#x…

蓝桥杯第 6 场 小白入门赛 2.猜灯谜(for + 数组)

思路&#xff1a;注意是环形排列的灯笼&#xff0c;它的谜底是相邻两个灯笼的数字之和。这道题要用到两个数组&#xff0c;ans存答案&#xff0c;a存原数据。数据读入部分就不用说了&#xff0c;重点就是单独写明ans[0]和ans[n-1]两个取值&#xff0c;其他的用for循环数组就可以…

数据结构——栈和队列的表示与实现详解

目录 1.栈的定义与特点 2.队列的定义与特点 3.案例引入 4.栈的表示和操作的实现 1.顺序栈的表示 代码示例&#xff1a; 2.顺序栈的初始化 代码示例&#xff1a; 3.判断栈是否为空 代码示例&#xff1a; 4.求顺序栈长度 代码示例&#xff1a; 5.清空顺序栈 …

如何实现图片上传至服务器

在绝大多数的项目中都会涉及到文件上传等&#xff0c;下面我们来说一下技术派中是如何实现原生图片上传的&#xff0c;这个功能说起来简单&#xff0c;但其实对于技术还是有考验的。图片的上传涉及到IO读写&#xff0c;一个文件上传的功能&#xff0c;就可以把IO流涉及到的知识…

PyTorch学习笔记之激活函数篇(六)

6、RReLU函数 对应的论文链接&#xff1a;https://arxiv.org/pdf/1505.00853.pdf 6.1 公式 RReLU函数的公式&#xff1a; f ( x ) { x , x > 0 α x , x < 0 f(x) \begin{cases} x&,x>0 \\ \alpha x&,x<0 \end{cases} f(x){xαx​,x>0,x<0​ …

rust - 一个日志缓存记录的通用实现

本文给出了一个通用的设计模式&#xff0c;通过建造者模式实例化记录对象&#xff0c;可自定义格式化器将实例化后的记录对象写入到指定的缓存对象中。 定义记录对象 use chrono::prelude::*; use std::{cell::RefCell, ffi::OsStr, fmt, io, io::Write, path::Path, rc::Rc,…

✅技术社区—通过Canal框架实现MySQL与ElasticSearch的数据同步

Canal 是一个由阿里巴巴开源的&#xff0c;基于 Java 的数据库变更日志解析的中间件&#xff0c;其原理是基于Binlog订阅的方式实现&#xff0c;模拟一个MySQL Slave 订阅Binlog日志&#xff0c;从而实现CDC&#xff0c;主要用于实现 MySQL 数据库的增量数据同步。它主要的使用…

模块化项目Eclipse测试网零撸教程

简介&#xff1a;Eclipse 是一个基于 Solana 区块链的初创项目&#xff0c;致力于构建基于 Solana 虚拟机的通用 Layer2 解决方案&#xff0c;为以太坊提供更快速、更通用的 Rollup 技术。其主要用途是为开发者提供构建基于 Solana 虚拟机的 Rollup 应用的平台&#xff0c;解决…

Vue3-响应式基础:单文件和组合式文件

单文件&#xff1a;html <!DOCTYPE html> <html> <head><title>响应式基础</title> </head> <body><div id"app" ><!-- dynamic parameter:同样在指令参数上也可以使用一个 JavaScript 表达式&#xff0c;需要包…

企业微信H5文件下载。

废话不多说&#xff0c;直接上代码。 1.判断是不是企业微信打开的 const ua navigator.userAgent.toLowerCase() if (/micromessenger/.test(ua)) {} 2.复制功能 navigator.clipboard.writeText(newsUrl).then(() > {this.$message({message: 您已复制文件链接&#xff…

leetcode513找树左下角的值

解法1&#xff1a;BFS 思路就是层序遍历 用队列记住每层的元素&#xff0c;如果每次记住每层的第一个元素 ---->https://programmercarl.com/0102.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.html#_102-%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A…

微调大型语言模型(LLM):应用案例示例

微调大型语言模型&#xff08;LLM&#xff09;&#xff1a;应用案例示例 摘要&#xff1a; 本文讨论了大型语言模型&#xff08;LLM&#xff09;的微调&#xff0c;这是一种通过少量数据训练已经预训练好的模型以执行特定任务的过程。微调可以让LLM在翻译、文本分类、文本生成…

SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

文章目录 1.整合MyBatis1.需求分析2.数据库表设计3.数据库环境配置1.新建maven项目2.pom.xml 引入依赖3.application.yml 配置数据源4.Application.java 编写启动类5.测试6.配置类切换druid数据源7.测试数据源是否成功切换 4.Mybatis基础配置1.编写映射表的bean2.MonsterMapper…