当前位置: 首页 > news >正文

[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】打家劫舍||

打家劫舍|| 题目描述算法分析编程代码 链接: 打家劫舍|| 在做这个题之前&#xff0c;建议大家做一下这个链接: 按摩师 我的博客里也有这个题的讲解&#xff0c;名字是按摩师 题目描述 算法分析 编程代码 class Solution { public:int maxrob(vector<int>nums,int left,…...

【Nginx】Nginx的重定向——location

location 匹配URI location 匹配的规则和优先级&#xff1b;***重点 nginx常用的变量&#xff1b;要求掌握 rewrite 重定向&#xff1b;掌握/理解 location匹配&#xff1a;*** 正则表达式&#xff1a;匹配的是文件内容 常见的正则表达式&#xff1a…...

每日一题——滑动窗口的最大值

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

【使用go开发区块链】之获取链上数据(03)

上篇文章&#xff0c;我们完成了数据库的连接&#xff0c;本章节&#xff0c;我们将完成ethclient的配置以及初始化 1、ethclient配置 1.1、安装go-ethereum 在命令行终端输入下面代码安装&#xff1a; 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自己搭框架?

今天这篇文章呢&#xff0c;我会从以下几个方面来介绍&#xff1a; 1、首先介绍一下pytest框架 2、带大家安装Pytest框架 3、使用pytest框架时需要注意的点 4、pytest的运行方式 5、pytest框架中常用的插件 一、pytest框架介绍 pytest 是 python 的第三方单元测试框架&a…...

Objective-C获取变量类型的方法

在Objective-C中&#xff0c;要获取一个对象的类型&#xff0c;可以使用[object class]方法。这将返回一个Class对象&#xff0c;表示该对象的类型。 另外&#xff0c;typeid是C中的关键字&#xff0c;用于获取一个变量的类型信息。在Objective-C中&#xff0c;typeid并不适用于…...

相机可见区域,使用鼠标拖拽模型

知识点 向量射线检测坐标转换 思路 使用射线检测获取射线检测点与模型对象之间的偏移量 &#xff08;世界空间&#xff09;使用相机的坐标转换获取检测点与鼠标位置之间的偏移量 &#xff08;屏幕空间&#xff09;拖拽时&#xff0c;更新模型位置 代码示例 using UnityEng…...

Vue 2 与 Vue 3 的全面比较

Vue 2 与 Vue 3 的全面比较 1. 性能提升 Vue 3 的性能得到了显著提升。虚拟 DOM 已经重写&#xff0c;使补丁过程更快。 对比&#xff1a; Vue 3 使用了基于 Proxy 的新观察者机制&#xff0c;取代了 Vue 2 的基于 Object.defineProperty 的观察者。 Object.definePropert…...

Unity学习笔记--如何优雅简便地利用对象池生成游戏对象(进阶版)LRU + 对象池

前言 之前写过一篇关于对象池的文章&#xff0c;现在来看写的并不是很好&#xff0c;所以来考虑优化下。 现在来看一年前写的代码&#xff0c;越看越不能入目hhh Unity学习笔记–如何优雅简便地利用对象池生成游戏对象 前置知识 Unity学习笔记–使用 C# 开发一个 LRU 代码实…...

【Spring专题】Bean的声明周期流程图

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

C++实现俄罗斯方块(源码+详解)

&#x1f442; Take me Hand Acoustic - Ccile Corbel - 单曲 - 网易云音乐 源码Debug工具 &#xff08;1&#xff09;cppreference.com &#xff08;主&#xff09; &#xff08;2&#xff09;必应 (bing.com) &#xff08;3&#xff09;GPT&#xff08;主&#xff09; &#…...

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 &#xff0c;20.04&#xff0c;18.04&#xff0c;16.04 等常见版本 ubuntu 虚拟机环境各准备一份。注意定期更新快照以防意外。虚拟机建议硬盘 256 G 以上&#xff0c;内存也尽量大一些。硬盘大小只是上界&#…...

Unity Poisson分布 【由ChatGPT生成】

Unity Poisson分布 【由ChatGPT生成】 前言项目Unity场景布置代码编写添加并设置脚本运行效果总结 前言 在Unity游戏开发中&#xff0c;数学和统计学的概念常常用于解决各种问题&#xff0c;从资源分配到游戏机制的设计。本文将探讨Poisson分布在Unity游戏开发中的实际应用和作…...

permission denied while trying to connect to the Docker daemon socket 错误

安装 docker 执行错误如下&#xff1a; $ 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),可…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

STL 2迭代器

文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器&#xff1f; 1.迭代器…...