[git] git基础知识
git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目
git易于学习,性能极快
什么是版本控制?
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况,可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换(版本控制本质就是用git管理文件夹,是为了保留之前所有的版本,以便回滚和修改)
Git的常用命令
① 查看git的版本号
git --version
② 想要让git对一个目录进行版本控制需要以下步骤:
1.进入要管理的文件夹
2.执行初始化命令(初始化本地库)
git init
git init 命令会把这个目录变成git可以管理的仓库
该命令执行完后会在当前目录生成一个 .git 目录,所有 git 所需要的数据和资源都存放在这个目录中
3.管理目录下的文件状态(查看本地库当前的状态,显示有变更的文件)
git status
4.管理指定文件(添加文件到暂存区)
git add 文件名
git add .
5.设置用户签名:用户名称、电子邮箱地址【配置一次即可】
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
提示Tips
1.签名的作用是区分不同操作者身份,用户的签名信息在每一个版本的提交信息中都能够看到,以此确认本次提交是谁做的。git首次安装必须设置一下用户签名,否则无法提交代码
2.注意这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系
6.生成版本(将暂存区内容添加到本地库中)
git commit -m "描述信息"
③ 修改文件后重新添加到本地库中
查看状态(检测到工作区有文件被修改)
git status
将修改的文件再次添加到暂存区
git add .
查看状态(工作区的修改添加到了暂存区)
git status
提交到本地库
git commit -m "描述信息"
④ 版本穿梭(回滚)
查看历史提交记录
git log
git log该命令显示了从最新提交到最早提交的所有提交信息,包括提交的作者、提交日期和提交信息等
git reflog
git reflog该命令也可以查看历史记录
git reflog 查看版本信息
git log 查看版本详细信息
回滚至之前的版本
git log
git reset --hard 版本号
回滚至之后的版本
git reflog
git reset --hard 版本号
⑤ git分支操作
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过在某个时间点,两个平行宇宙合并了,结果你既学会了git又学会了SVN
在版本控制过程中,同时推进多个任务,我们可以为每个任务单独的创建分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。分支可以简单理解为副本,一个分支就是一个单独的副本
使用分支的好处
1.同时并行推进多个功能开发,提高开发效率
2.各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可
查看分支
git branch -v
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
创建+切换分支
git checkout -b 分支名称
合并分支(把指定的分支合并到当前分支上)
git merge 需要进行合并的分支名称
提示Tips
合并分支有时也会产生冲突 ,产生冲突的原因是合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,git无法替我们决定使用哪一个,必须人为决定新代码内容
删除分支
git branch -d 需要删除的分支名称
实际应用案例:基于分支紧急修复线上bug
当你接到修复一个代号001的bug的任务时,很自然地,我们可以创建一个分支bug-001来修复它,但是当前正在dev分支上进行的工作还没有提交,我们可以使用git提供的git stash功能,可以把当前工作现场"储藏"起来,等以后恢复现场后继续工作
① 在dev分支上使用如下git指令
git stash
② 首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支
查看分支
git branch -v
切换回master分支
git checkout master
创建并切换到bug-001分支
git checkout -b bug-001
查看现在所处的分支是否为bug分支
git branch -v
③ 在bug-001分支上进行修复出错的代码后,进行提交
git add .
git commit -m "bug修复完成"
④ 提交完成后,切换回master分支,进行分支合并,最后删除bug分支
git checkout master
git merge bug-001
git branch -d bug-001
⑤ 现在bug-001修复完成,是时候接着回到dev分支进行干活了
git checkout dev
git stash pop
提示Tips
修复bug时,我们会通过创建新的bug分支进行修复,然后进行合并,最后进行删除
当手头工作没有完成时,先把工作现场 git stash 一下,然后去修复bug,修复完bug之后,再使用 git stash pop 恢复工作现场
代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库
GitLab、GitHub、Gitee码云
局域网
√ GitLab
互联网
√ GitHub(外网)
√ Gitee码云(国内网站)
创建远程库别名
git remote add 别名 远程库地址
查看当前所有远程地址别名
git remote -v
推送本地库分支到远程库
git push 别名 分支
拉取远程库到本地库
git pull 别名 分支
克隆远程库到本地库
git clone 需要克隆的远程库地址
克隆clone会帮我们进行拉取代码、初始化本地仓库以及创建别名
Git常用命令速查表
相关文章:

[git] git基础知识
git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目 git易于学习,性能极快 什么是版本控制? 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况,可以记录文件修改历史…...
【从零学习python 】15.深入了解字符串及字符集编码
文章目录 字符集字符和编码相互转换编码规则 学习目标成员运算符in运算符not in 运算符 进阶案例 字符集 计算机只能处理数字(其实就是数字0和数字1),如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bi…...

【LeetCode】打家劫舍||
打家劫舍|| 题目描述算法分析编程代码 链接: 打家劫舍|| 在做这个题之前,建议大家做一下这个链接: 按摩师 我的博客里也有这个题的讲解,名字是按摩师 题目描述 算法分析 编程代码 class Solution { public:int maxrob(vector<int>nums,int left,…...
【Nginx】Nginx的重定向——location
location 匹配URI location 匹配的规则和优先级;***重点 nginx常用的变量;要求掌握 rewrite 重定向;掌握/理解 location匹配:*** 正则表达式:匹配的是文件内容 常见的正则表达式:…...

每日一题——滑动窗口的最大值
滑动窗口的最大值 题目链接 暴力解法 最容易想到的当然还是通过两层循环来暴力求解:一层循环用来移动窗口,一层循环用来在窗口内找到最大值。这种做法的时间复杂度为O(kN),会超出时间限制,因此,我们要找到更加高效的…...

【使用go开发区块链】之获取链上数据(03)
上篇文章,我们完成了数据库的连接,本章节,我们将完成ethclient的配置以及初始化 1、ethclient配置 1.1、安装go-ethereum 在命令行终端输入下面代码安装: go get github.com/ethereum/go-ethereum1.2、Ethclient配置 1.2.1、新…...
js 动态设置transformOrigin
transformOrigin属性用于指定元素变换的原点。 // 获取要设置的元素 const element document.getElementById(your-element-id);// 设置transformOrigin属性 element.style.transformOrigin 50% 50%; // 以元素中心为原点// 或者使用变量来设置 const x 0; // x坐标 const …...
docker使用tab无法自动补全命令
本文参考链接 一、安装bash-complete 在线安装 yum install -y bash-completion二、刷新文件 source /usr/share/bash-completion/completions/docker source /usr/share/bash-completion/bash_completion...

既然jmeter也能做接口自动化,为什么还需要pytest自己搭框架?
今天这篇文章呢,我会从以下几个方面来介绍: 1、首先介绍一下pytest框架 2、带大家安装Pytest框架 3、使用pytest框架时需要注意的点 4、pytest的运行方式 5、pytest框架中常用的插件 一、pytest框架介绍 pytest 是 python 的第三方单元测试框架&a…...
Objective-C获取变量类型的方法
在Objective-C中,要获取一个对象的类型,可以使用[object class]方法。这将返回一个Class对象,表示该对象的类型。 另外,typeid是C中的关键字,用于获取一个变量的类型信息。在Objective-C中,typeid并不适用于…...
相机可见区域,使用鼠标拖拽模型
知识点 向量射线检测坐标转换 思路 使用射线检测获取射线检测点与模型对象之间的偏移量 (世界空间)使用相机的坐标转换获取检测点与鼠标位置之间的偏移量 (屏幕空间)拖拽时,更新模型位置 代码示例 using UnityEng…...
Vue 2 与 Vue 3 的全面比较
Vue 2 与 Vue 3 的全面比较 1. 性能提升 Vue 3 的性能得到了显著提升。虚拟 DOM 已经重写,使补丁过程更快。 对比: Vue 3 使用了基于 Proxy 的新观察者机制,取代了 Vue 2 的基于 Object.defineProperty 的观察者。 Object.definePropert…...
Unity学习笔记--如何优雅简便地利用对象池生成游戏对象(进阶版)LRU + 对象池
前言 之前写过一篇关于对象池的文章,现在来看写的并不是很好,所以来考虑优化下。 现在来看一年前写的代码,越看越不能入目hhh Unity学习笔记–如何优雅简便地利用对象池生成游戏对象 前置知识 Unity学习笔记–使用 C# 开发一个 LRU 代码实…...

【Spring专题】Bean的声明周期流程图
前言 我向来不主张【通过源码】理解业务,因为每个人的能力有限,甚至可能会因为阅读错误导致出现理解上的偏差,所以我决定,还是先帮大家【开天眼】,先整体看看流程图,好知道,Spring在写源码的过…...

C++实现俄罗斯方块(源码+详解)
👂 Take me Hand Acoustic - Ccile Corbel - 单曲 - 网易云音乐 源码Debug工具 (1)cppreference.com (主) (2)必应 (bing.com) (3)GPT(主) &#…...

01:STM32点灯大师和蜂鸣器
目录 一:点亮1个LED 1:连接图 2:函数介绍 3:点灯代码 二:LED闪烁 1:函数介绍 2:闪烁代码 三:LED流水灯 1:连接图 2:函数介绍 3:流水灯代码 四:蜂鸣器 1:连接图 2:蜂鸣器代码 一:点亮1个LED 1:连接图 因为IO口与LED负极相连所以IO口输出低电频,点亮LED (采用的是低…...

linux pwn 基础知识
环境搭建 虚拟机安装 镜像下载网站为了避免环境问题建议 22.04 ,20.04,18.04,16.04 等常见版本 ubuntu 虚拟机环境各准备一份。注意定期更新快照以防意外。虚拟机建议硬盘 256 G 以上,内存也尽量大一些。硬盘大小只是上界&#…...
Unity Poisson分布 【由ChatGPT生成】
Unity Poisson分布 【由ChatGPT生成】 前言项目Unity场景布置代码编写添加并设置脚本运行效果总结 前言 在Unity游戏开发中,数学和统计学的概念常常用于解决各种问题,从资源分配到游戏机制的设计。本文将探讨Poisson分布在Unity游戏开发中的实际应用和作…...
permission denied while trying to connect to the Docker daemon socket 错误
安装 docker 执行错误如下: $ docker pspermission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json”: dial unix /var/run/docker.sock: connect:…...
pytorch nn.ModuleList和nn.Sequential的用法笔记
有部分内容转自: pytorch小记:nn.ModuleList和nn.Sequential的用法以及区别_慕思侣的博客-CSDN博客 但是有部分内容做了修改调整, 在构建网络的时候,pytorch有一些基础概念很重要,比如nn.Module,nn.ModuleList,nn.Sequential,这些类我们称为为容器(containers),可…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

基于Python的气象数据分析及可视化研究
目录 一.🦁前言二.🦁开源代码与组件使用情况说明三.🦁核心功能1. ✅算法设计2. ✅PyEcharts库3. ✅Flask框架4. ✅爬虫5. ✅部署项目 四.🦁演示效果1. 管理员模块1.1 用户管理 2. 用户模块2.1 登录系统2.2 查看实时数据2.3 查看天…...

Pandas 可视化集成:数据科学家的高效绘图指南
为什么选择 Pandas 进行数据可视化? 在数据科学和分析领域,可视化是理解数据、发现模式和传达见解的关键步骤。Python 生态系统提供了多种可视化工具,如 Matplotlib、Seaborn、Plotly 等,但 Pandas 内置的可视化功能因其与数据结…...

轻量安全的密码管理工具Vaultwarden
一、Vaultwarden概述 Vaultwarden主要作用是提供一个自托管的密码管理器服务。它是Bitwarden密码管理器的第三方轻量版,由国外开发者在Bitwarden的基础上,采用Rust语言重写而成。 (一)Vaultwarden镜像的作用及特点 轻量级与高性…...