Git介绍与使用
Git介绍与常用命令的使用
目录:
一、Git简介
二、Git简单命令行入门
三、Git常用命令
四、常见问题补充
一、Git简介
Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性。
Git基本概念
| 分类 | 介绍 |
|---|---|
| 工作区 | 仓库的目录。工作区是独立于各个分支的。 |
| 暂存区 | 数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。 |
| 版本库 | 存放所有已经提交到本地仓库的代码版本 |
| 版本结构 | 树结构,树中每个节点代表一个代码版本。 |
二、Git简单命令行入门
一键将本地文件推送到远程,使用命令+介绍
命令初始化一个新的 Git 仓库
git init
通过 git remote add 命令将远程仓库连接到您的本地仓库。
git remote add origin <远程仓库URL>
使用 git pull 命令拉取远程更新。
git pull origin master
将所有待加入暂存区的文件加入暂存区
git add .
“xxx给自己看的备注信息”:将暂存区的内容提交到当前分支
git commit -m "xxx"
推送到远程仓库(第一次提交加-u,标志用于与远程分支建立关联)
git push -u origin master
推送到远程仓库
git push
三、Git常用命令
| 编号 | 命令 | 解释 |
|---|---|---|
| 1 | git config --global user.name xxx | 设置全局用户名,信息记录在~/.gitconfig文件中 |
| 2 | git config --global user.email xxx@xxx.com | 设置全局邮箱地址,信息记录在~/.gitconfig文件中 |
| 3 | git init | 将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中 |
| 4 | git add XX | 将XX文件添加到暂存区 |
| 5 | git add . | 将所有待加入暂存区的文件加入暂存区 |
| 6 | git rm --cached XX | 将文件从仓库索引目录中删掉 |
| 7 | git commit -m “给自己看的备注信息” | 将暂存区的内容提交到当前分支 |
| 8 | git status | 查看仓库状态 |
| 9 | git diff XX | 查看XX文件相对于暂存区修改了哪些内容 |
| 10 | git log | 查看当前分支的所有版本 |
| 11 | git reflog | 查看HEAD指针的移动历史(包括被回滚的版本) |
| 12 | git reset --hard HEAD^ 或 git reset --hard HEAD~ | 将代码库回滚到上一个版本 |
| 13 | git reset --hard HEAD^^ | 往上回滚两次,以此类推 |
| 14 | git reset --hard HEAD~100 | 往上回滚100个版本 |
| 15 | git reset --hard 版本号 | 回滚到某一特定版本 |
| 16 | git checkout — XX或git restore XX | 将XX文件尚未加入暂存区的修改全部撤销 |
| 17 | git remote add origin <远程Git仓库地址> | 将本地仓库关联到远程仓库 |
| 18 | git push -u (第一次需要-u,以后不需要) | 将当前分支推送到远程仓库 |
| 19 | git push origin branch_name | 将本地的某个分支推送到远程仓库 |
| 20 | git clone <远程Git仓库地址> | 将远程仓库XXX下载到当前目录下 |
| 21 | git checkout -b branch_name | 创建并切换到branch_name这个分支 |
| 22 | git branch | 查看所有分支和当前所处分支 |
| 23 | git checkout branch_name | 切换到branch_name这个分支 |
| 24 | git merge branch_name | 将分支branch_name合并到当前分支上 |
| 25 | git branch -d branch_name | 删除本地仓库的branch_name分支 |
| 26 | git branch branch_name | 创建新分支 |
| 27 | git push --set-upstream origin branch_name | 设置本地的branch_name分支对应远程仓库的branch_name分支 |
| 28 | git push -d origin branch_name | 删除远程仓库的branch_name分支 |
| 29 | git pull | 将远程仓库的当前分支与本地仓库的当前分支合并 |
| 30 | git pull origin branch_name | 将远程仓库的branch_name分支与本地仓库的当前分支合并 |
| 31 | git branch --set-upstream-to=origin/branch_name1 branch_name2 | 将远程的branch_name1分支与本地的branch_name2分支对应 |
| 32 | git checkout -t origin/branch_name | 将远程的branch_name分支拉取到本地 |
| 33 | git stash | 将工作区和暂存区中尚未提交的修改存入栈中 |
| 34 | git stash apply | 将栈顶存储的修改恢复到当前分支,但不删除栈顶元素 |
| 35 | git stash drop | 删除栈顶存储的修改 |
| 36 | git stash pop | 将栈顶存储的修改恢复到当前分支,同时删除栈顶元素 |
| 37 | git stash list | 查看栈中所有元素 |
四、常见问题补充
1、缺乏Git练习?
来玩Git小游戏 Learn Git Branching
2、Git 与 SVN 共同点与区别?
共同点:
- 版本控制系统: SVN 和 Git 都是版本控制系统,允许开发人员跟踪文件的变化、回溯到不同的版本、合并多个开发者的工作等。
- 协作开发: 两者都允许多个开发者协同工作在同一个项目上,管理代码的更改和集成新功能。
区别:
- 分布式 vs. 集中式:
- Git 是分布式版本控制系统,每个开发者都有一个完整的本地存储库副本,可以独立地工作、提交更改和合并。
- SVN 是集中式版本控制系统,所有代码存储在一个中央服务器上,开发者需要与服务器进行交互来获取最新代码或提交更改。
- 工作方式:
- Git 通过将每个版本作为文件系统快照来管理文件的变化。每次提交时,Git 会创建一个新的快照,包含项目当前状态的副本。
- SVN 以文件为基础,跟踪每个文件的每个版本的变化。
- 分支和合并:
- Git 的分支和合并非常快速和高效,因为它在本地存储库中保存了完整的历史记录,并且分支操作仅涉及指向不同提交的指针移动。
- SVN 的分支和合并相对复杂,涉及创建复制版本,因为它是集中式系统,没有本地完整历史记录。
- 性能和效率:
- Git 在处理大型项目和分支时通常更快、更高效,因为大部分操作都在本地完成。
- SVN 在大型项目和分支方面可能会变慢,特别是在集中式存储库上。
3、官方等相关链接?
Git下载:https://git-scm.com/download
SVN 官网:https://subversion.apache.org
Github SVN 源码:https://github.com/apache/subversion
相关文章:
Git介绍与使用
Git介绍与常用命令的使用 目录: 一、Git简介 二、Git简单命令行入门 三、Git常用命令 四、常见问题补充 一、Git简介 Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。特点&…...
React18源码: React中的LanePriority和SchedulerPriority
优先级区别和联系 在源码中,3种优先级位于不同的js文件,是相互独立的注意: LanePriority 和 SchedulerPriority 从命名上看,它们代表的是优先级ReactPriorityLevel 从命名上看,它代表的是等级而不是优先级 它用于衡量…...
Android Studio基础(下载安装与简单使用)
1、搭建Android开发平台 1.1 Android Studio 下载地址及版本说明 Android 开发者官网: https://developer.android.com/index.html(全球,需科学上网) https://developer.android.google.cn/index.html(国内ÿ…...
MyBatisPlus条件构造器和常用接口
前置配置文章 一、wapper介绍 wrapper的继承体系: Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 QueryWrapper : 查询条件封装UpdateWrapper &#x…...
ABAP 导入Excel表示例程序
目录 ABAP 导入excel示例程序创建程序使用的结构上传下载模板 ABAP 导入excel示例程序 批量导入程序,需要使用到导入模板,首先需要创建程序,之后是需要创建excel导入模板,并且需要将excel导入模板上传到SAP系统里面,之…...
Spring之AOP源码解析(中)
前言 在上一篇文章中,我们讲解了Spring中那些注解可能会产生AOP动态代理,我们通过源码发现,完成AOP相关操作都和ProxyFactory这个类有密切关系,这一篇我们将围绕这个类继续解析 演示 作用 ProxyFactory采用策略模式生成动态代理对象,具体生成cglib动态代理还是jdk动态代理,…...
《Docker极简教程》--Docker卷和数据持久化--Docker卷的使用
一、基本操作 1.1 创建Docker卷 创建 Docker 卷是在 Docker 中管理持久化数据的重要步骤之一。通过 Docker 卷,可以将数据与容器解耦,实现数据的持久化存储,并且可以在容器之间共享数据。以下是创建 Docker 卷使用 docker volume create 命…...
【Logback】如何在项目中快速引入Logback日志?
目录 1、引入相关依赖或者 jar 包 2、使用logback日志 3、引入logback配置文件 4、打印logback内部状态信息 Logback 是 Java 社区中使用最广泛的日志框架之一。它是其前身 Log4j 的替代品。Logback 比所有现有的日志框架速度更快,占用空间更小,而且…...
【Linux从青铜到王者】 基础IO
本篇重点:文件描述符,重定向,缓冲区,磁盘结构,文件系统,inode理解文件的增删查改,查找一个文件为什么一定要有路径,动静态库,有的时候为什么找不到库,动态库的…...
C++之类作用域
目录 1、全局作用域 2、类作用域 2.1、设计模式之Pimpl 2.2、单例模式的自动释放 2.2.0、检测内存泄漏的工具valgrind 2.2.1、可以使用友元形式进行设计 2.2.2、内部类加静态数据成员形式 2.2.3、atexit方式进行 2.2.4、pthread_once形式 作用域可以分为类作用域、类名…...
SpringCloud Gateway网关 全局过滤器[AntPathMatcher 某些路径url禁止访问] 实现用户鉴权
前提:先保证Gateway网关项目 和 Nacos注册中心 等可以正常访问和调用,搭建方法可查看博文SpringCloud Gateway网关 项目创建 及 整合Nacos开发_spring gateway如何设置工程名称-CSDN博客 类似的全局鉴权方案,参考如下: SpringClo…...
ELK介绍以及搭建
基础环境 hostnamectl set-hostname els01 hostnamectl set-hostname els02 hostnamectl set-hostname els03 hostnamectl set-hostname kbased -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config systemctl stop firewalld & systemctl disable firewalld# 安…...
Spring中的ApplicationContext.publishEvent
简单理解 其实就是监听处理。比如找工作平台上,雇主 employer 发布自己的雇佣条件,目的是平台中有符合条件的求职者时,及时向雇主推荐。求职者发布简历,当平台发现某个求职者比较符合条件,就触发被动,推荐…...
jackson、gson、fastjson和json-lib四种主流json解析框架对比
一、四种框架的介绍和对比 在Java中,Jackson、Gson、Fastjson和json-lib都是流行的JSON解析框架,它们各自有一些特点和优势。下面是对它们进行简要介绍和对比: 1.1 介绍 1) Jackson: Jackson是由FasterXML开发的一个高性能的J…...
已解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法
今天在使用 IDEA 使用 MyBatis 的时候遇到了这种情况: 可以看到 userMapper 下有个红色的波浪警告,虽然代码没有任何问题,能正常运行,但是这个红色警告在这里杵着确实让人很窝心。 于是我在网上找了找,最终明白了原因…...
在jar里限制指定的包名才可调用(白名单)。
1. 在jar包中定义一个接口,例如 用于检查传入的hash值是否匹配预设的值。 2. 在调用接口的地方,获取当前应用的hash值。 3. 将当前应用的hash值与预设的值进行比较,如果匹配,则允许调用接口;否则,拒绝调用。…...
python 提取PDF文字
使用pdfplumber,不能提取扫描的pdf和插入的图片。 import pdfplumberfile_path rD:\UserData\admindesktop\官方文档\1903_Mesh-Models-Overview_FINAL.pdf with pdfplumber.open(file_path) as pdf:page pdf.pages[0]print(page.extract_text()) # 所以文字prin…...
电气机械5G智能工厂数字孪生可视化平台,推进电气机械行业数字化转型
电气机械5G智能工厂数字孪生可视化平台,推进电气机械行业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的重要趋势。电气机械行业作为传统制造业的重要组成部分,也面临着数字化转型的挑战和机遇。为了更好地推进电气机械行…...
C# (WebApi)整合 Swagger
SpringBoot-整合Swagger_jboot整合swagger-CSDN博客 C# webapi 也可以整合Swagger webapi运行其实有个自带的HELP页面 但是如果觉得UI不好看,且没办法显示方法注释等不方便的操作,我们也可以整合Swagger 一、使用NuGet控制台安装Swagger 在菜单中选择…...
导入excel某些数值是0
目录 导入excel某些数值是0数据全部都是0原因解决 部分数据是0原因解决 导入excel某些数值是0 数据全部都是0 有一列“工单本月入库重量”全部的数据都是0 原因 展示的时候,展示的字段和内表需要展示的字段不一致,导致显示的是0。 解决 修改展示的字…...
AI智能体链上记忆库:赋予智能体历史感知与持续学习能力
1. 项目概述:一个为AI智能体打造的链上记忆库如果你正在构建一个能够自主执行复杂链上操作的AI智能体,比如一个能帮你分析代币趋势、自动执行交易策略的“加密交易员”,或者一个能管理DAO金库、处理社区提案的“链上管家”,那么你…...
YOLO26 + PySide6 采油井智能检测系统
基于YOLO26pyside6的采油井系统 代码界面全配齐! 核心优势: 1⃣️前沿技术:采用YOLO26深度学习模型,检测精度高、速度快,轻松识别采油井目标! 2⃣️功能齐全:含完整训练代码数据集(…...
GAD7980 ADC在振动数据采集中的实战应用与设计要点
1. 项目概述:为什么我们需要“快、精、高”的振动数据采集?在工业设备状态监测、精密仪器分析乃至消费电子性能评估领域,振动数据就像设备的“心电图”。它直接反映了机械结构的健康状况、运动部件的平衡性以及系统运行的稳定性。过去&#x…...
为什么你的ElevenLabs广告完播率低于行业均值37%?——专业声学工程师用频谱图还原真相
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs广告配音的核心声学失效诊断 当ElevenLabs生成的广告语音出现“机械感过强”“情感断层”或“语调塌陷”等现象时,问题往往并非源于模型随机性,而是底层声学特征在合…...
从零到一:uni-app多端应用集成i18n国际化的完整实践指南
1. 为什么需要国际化? 第一次接触国际化需求时,我也以为就是简单的文本翻译。直到实际开发中遇到阿拉伯语从右向左排版、德语超长文本撑破布局、日语敬语体系等复杂场景,才发现国际化远不止翻译这么简单。国际化(i18n)…...
通过Nodejs快速为Web应用接入多模型AI能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Nodejs快速为Web应用接入多模型AI能力 现代Web应用对智能交互能力的需求日益增长,无论是客服对话、内容辅助生成还…...
CoPaw:让AI代码助手深度适配个人项目与团队规范的工程化实践
1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目,叫CoPaw,作者是 alexgzx。光看名字可能有点摸不着头脑,但如果你对 AI 辅助编程、代码生成或者想提升自己的开发效率感兴趣,那这个项目绝对值得你花时间研究一下。简单来说…...
突破存储限制:群晖DSM7下Synology Photos自定义文件夹挂载实战
1. 为什么需要自定义文件夹挂载 很多群晖用户升级到DSM7后都会遇到一个头疼的问题:Synology Photos默认把所有个人照片都存放在/home/Photos目录下,而这个目录实际上位于/homes共享文件夹中。随着照片数量不断增加,/homes所在存储空间很快就会…...
Nix构建确定性AI编程环境:解决Cursor编辑器依赖冲突难题
1. 项目概述:当代码编辑器遇上Nix的确定性魔法 最近在折腾开发环境时,我遇到了一个老生常谈但又无比头疼的问题:团队里新来的同事怎么也跑不起来我本地运行得好好的一个代码辅助工具链。依赖版本冲突、系统库路径不对、甚至是因为他用的macO…...
SmarterRouter:基于软件定义与模块化构建智能路由器系统
1. 项目概述:一个更聪明的路由器,它到底想做什么?如果你和我一样,折腾过家里的网络,从刷第三方固件到组软路由,那你肯定对“路由器”这三个字有复杂的感情。它本该是默默无闻的网络基石,却常常因…...
