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

Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支

        借此机会写篇博客汇总一下自己去公司实习之后遇到的一些常见关于Git的操作。 

Git基本认识

         Git把数据看作是对小型文件系统的一组快照,每次提交更新,或在Git中保存项目状态时,Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时,为了提高效率,如果文件没有被修改,Git不再重新存储文件,而是只保留一个链接指向之前存储的文件。Git对待文件的方式更像是一个快照流。

        Git项目中三个工作区域的概念:Git仓库(.git directory)、工作目录(Working Directory)及暂存区域(Staging Area)。

 Git工作的主要流程:

  • 在工作目录中修改文件。
  • 暂存文件,将文件的快照放入暂存区域。
  • 提交更新,找到暂存区域的文件,将快照永久性存储到Git仓库目录。

Git常见操作

Git设置用户名、密码

Git设置全局用户名、密码操作:

  1. git config --global user.name [username]
  2. git config --global user.email [email]

设置的时候,需要将上述内容中的[username]和[email]替换成自己的用户名和密码即可。

  设置好之后通过Git保存用户名、邮箱:

  1.  使用命令直接修改config文件即可保存。

    echo "[credential]" >> .git/config
    echo "    helper = store" >> .git/config

  2. 直接修改.git/config文件

    ubuntu@VM-7-212-ubuntu:~/kernel-code/kernel-netfilter-sample-code$ vim .git/config

    ##修改成如下

    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
    [remote "origin"]
        url = https://github.com/Miss-you/kernel-netfilter-sample-code.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
        remote = origin
        merge = refs/heads/master
    ##主要是后面这两行,如果不想保存,则删除即可
    [credential]
        helper = store

    ##保存

        设置并保存后可以通过Git config --list查看已设配置,显示如下则操作成功。 

GIt提交代码

  • git branch : 查看当前的所有分支,并且确定当前位于哪个分支上。
  • git status:显示工作目录和当前暂存区状态。
  • git checkout 分支名:切换已经存在的分支。
  • git checkout -b 分支名:不存在的分支,创建并切换到新分支。
  • git add .:将当前目录的更改添加到暂存区。
  • git add -A:将工作目录中的所有更改添加到暂存区,无论这些更改是否被git跟踪。
  • git commit -m "test":将暂存区的更改创建一个新的提交(commit)保存到本地仓库。
  • git push origin 分支名(mastr/ test_01):将本地仓库中的分支推送到远程Git仓库中。
  • git push -u origin 分支名:-u的作用是设置上游(远程分支)跟踪当前的本地分支。第一次推送一个新分支时,使用-u选项可以指定远程分支作为本地分支的上游分支。
  • git push -f origin 分支名:强制将分支分支推送到远程。如果当前分支所在的版本号commit ID不是最新提交的版本号,会抛弃此版本之后的提交记录。
  • git pull origin master:拉取远程分支最新代码到本地。

Git合并分支

        企业开发中上线前都需要拉取最新master分支,并将其合并到对应的上线分支。

  1. 切换到master分支【git checkout master】
  2. 拉取远程分支的最新分支【git pull origin master】
  3. 切换到对应的上线分支,如:feat/print_0523【git chekout feat/print_0523】
  4. 将master分支合并到当前分支【git merge master】此命令会将当前master分支代码合并到当前所在分支。
  5. 解决合并分支冲突。
  6. 推送合并后的分支到远端。

Git进行版本回退

        恢复到一个旧版本、并且旧版本后的代码都抛弃:

        回退原理:git reset --hard 命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。

  1. 查看版本号:【git log】查找历史提交版本号。找到需要回滚的目标版本号。
  2. 使用【git reset --hard 版本号】将版本回退。此命令会将HEAD指针、当前分支指针和索引区都指向指定的commit ID,并重置工作区为该版本。
  3. 推送修改【git push -f 】,此时不能使用 git push 推送,因为我们本地库HEAD指向的版本比远程库的要旧。使用git push -f 强制推送上去。

Git抛弃本地分支拉取仓库对应分支的最新代码

        Git什么需要需要抛弃本地分支,拉取远程最新分支,当误操作将本地某个分支更改之后,并且更改的部分涉及面比较大。此时需要舍弃本地仓库中对应分支,直接拉取远程最新分支。

  • 使用 git branch 检查当前是否处于目标分支。
  • 如果处于目标分支,直接执行后续操作,如果没有处于目标分支,使用git checkout 分支名 切换到对应目标分支。
  • git status :检查本地是否有未提交的代码。
  • git stash:如果有未提交的代码,使用此命令将其暂存起来。git commit 也可以。
  • git fetch origin master:获取最新的远程master分支代码。
  • git reset --hard origin/master:重置本地分支到远程master分支的状态。
  • 如果前面的步骤中执行了git stash将本地未提交的分支暂存,此时需要使用git stash apply将更改应用到master分支。 

相关文章:

Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支

借此机会写篇博客汇总一下自己去公司实习之后遇到的一些常见关于Git的操作。 Git基本认识 Git把数据看作是对小型文件系统的一组快照,每次提交更新,或在Git中保存项目状态时,Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时…...

前端网页打开PC端本地的应用程序实现方案

最近开发有一个需求,网页端有个入口需要跳转三维大屏,而这个大屏是一个exe应用程序。产品需要点击这个入口,并打开这个应用程序。这个就类似于百度网盘网页跳转到PC端应用程序中。 这里我们采用添加自定义协议的方式打开该应用程序。一开始可…...

遇到not allow unquoted fieldName怎么办

前言 Exception in thread "main" com.alibaba.fastjson2.JSONException: not allow unquoted fieldName, offset 2, character , line 1, column 3, fastjson-version 2.0.25 { "data":null, "code":200, "msg":"成功"…...

IDEA安装并使用通义灵码

IDEA安装并使用通义灵码 通义灵码介绍安装通义灵码 通义灵码介绍 在数字革命的前沿,阿里云技术团队匠心独运,倾力打造“通义灵码”——一个融合尖端科技的智能编码助手,旨在革新软件工程的未来。 实时代码扩展 通义灵码具备深度理解代码脉络的…...

<数据集>AffectNet表情识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:29752张 标注数量(xml文件个数):29752 标注数量(txt文件个数):29752 标注类别数:7 标注类别名称:[anger,contempt,disgust,fear,happy,neutral,sad,surprise] 序号类…...

ThinkPHP对接易联云打印

引入composer包 composer require yly-openapi/yly-openapi-sdk <?phpnamespace app\common\library;use app\admin\model\yp\Order; use App\Api\PrintService; use App\Config\YlyConfig; use App\Oauth\YlyOauthClient; use think\Cache; use think\Config;class Yly {…...

JavaScript轮播图

HTML部分 <div class"box" onmouseover"over()" onmouseout"noover()"><img src"./img/zuo.png" alt"" class"left_arrow" onclick"left_last()"><img src"./img/yy.png" al…...

修复SteamUI.dll加载失败的指南,快速修复failed to load steamui.dll

在使用Steam平台进行游戏下载、安装和运行时&#xff0c;可能会遇到一些系统错误&#xff0c;比如“failed to load steamui.dll”。这个错误通常意味着Steam的用户界面库文件steamui.dll出现了问题。本文将详细介绍steamui.dll文件的相关信息以及如何修复这一问题。 一.什么是…...

PCL Local Surface Patches 关键点提取

目录 一、算法原理1、算法原理2、 参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、算法原理 主曲率是某一点局部形状的体现,Local Surface Patches 关键点检测法…...

Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问

Vue的设置 我们创建并启动一个Vue项目&#xff0c;如下所示&#xff1a; 打开cmd&#xff0c;输入ipconfig查询本地ip地址&#xff1a; 想通过本地ip地址访问&#xff0c;把localhost改成本地ip地址&#xff0c;发现打不开&#xff1a; 这是因为Vue项目默认只有localhost&…...

Android 线程池的面试题 线程线程池面试题

1.为什么要用线程池 降低资源消耗&#xff1a;通过复用线程&#xff0c;降低创建和销毁线程的损耗。 提高响应速度&#xff1a;任务不需要等待线程创建就能立即执行。 提高线程的可管理性&#xff1a;使用线程池可以进行统一的分配、调优和监控。 2. 线程池执行流程&#xff08…...

Flink时间和窗口

目录 时间语义 水位线&#xff08;Watermarks&#xff09; 并行流中的水位线 窗口 滚动窗口—Tumbling Windows 滑动窗口—Sliding Windows 会话窗口—Session Windows 全局窗口—Global Windows 例子 时间语义 如图所示&#xff0c;由事件生成器&#xff08;Event Pr…...

LLaMA模型量化方法优化:提高性能与减小模型大小

LLaMA模型量化方法优化:提高性能与减小模型大小 LLaMA模型量化方法优化:提高性能与减小模型大小引言新增量化方法性能评估7B模型13B模型 结果分析结论 LLaMA模型量化方法优化:提高性能与减小模型大小 引言 在大型语言模型(LLM)的应用中,模型大小和推理速度一直是关键的挑战。…...

前端CSS实现卡片抽奖效果

引言 在网页设计中&#xff0c;互动元素能够显著提升用户体验&#xff0c;吸引用户的注意力。其中&#xff0c;卡片抽奖效果常用于营销活动、游戏或娱乐场景&#xff0c;通过随机展示不同的卡片来增加趣味性和参与度。本文将详细介绍如何使用HTML和CSS来实现一个简单的卡片抽奖…...

Java在for循环中修改集合

前天看到一篇文章什么&#xff1f;for循环也会出问题&#xff1f;&#xff0c;里面涉及到在for循环中修改集合&#xff0c;想起来自己刚入行的时候就碰到过类似的问题&#xff0c;于是复现了一下文章中的问题&#xff0c;并试验了其它在循环中修改集合的方法。 底层原理参考什…...

Java小白入门到实战应用教程-运算符详解

Java小白入门到实战应用教程-运算符 上节回顾 在上节的内容中我们了解了变量和基本数据类型的内容&#xff0c;现在回顾一下上节课的内容。 声明变量的语法为&#xff1a; 数据类型 变量名&#xff1b; 其中在java中一共有8中基本数据类型&#xff0c;分别是&#xff1a;b…...

secureCRT同时在所有已打开窗口执行命令、mac-os下使用的SecureCRT版本 以及 SecureCRT一段时间不操作没有响应的问题

一、secureCRT命令行工具一次性同时在所有已打开窗口执行命令 公司的服务器比较多&#xff0c;最近因为opcache&#xff0c;上线发布后&#xff0c;需要重启所有的WEB服务器上的php。目前使用的jenkins发布&#xff0c;不过账号安全问题&#xff0c;给jenkins的账号权限受限不能…...

增材制造与智能制造关系

在撰写的增材制造技术与装备书籍中有着明确的描述&#xff0c;增材制造是智能制造的典型范例&#xff0c;是智能制造“类”的实例化过程。这种借助于计算机编程面向对象思想的解释可以更全面的理解增材制造和智能制造的关系。增材制造实例具备了智能制造类的属性&#xff0c;智…...

Google Test 学习笔记(简称GTest)

文章目录 一、介绍1.1 介绍1.2 教程 二、使用2.1 基本使用2.1.1 安装GTest &#xff08;下载和编译&#xff09;2.1.2 编写测试2.1.3 运行测试2.1.4 高级特性2.1.5 调试和分析 2.2 源码自带测试用例2.3 TEST 使用2.3.1 TestCase的介绍2.3.2 TEST宏demo1demo2 2.3.3 TEST_F宏2.3…...

不可变集合

定义&#xff1a;就是集合中的内容不可以被修改。 如何获取不可变集合&#xff1f; List、Set、Map类中提供的静态方法of可用来获取不可变集合。 特点&#xff1a;一旦创建完成只可以进行查询&#xff0c;不可以增删改。 细节&#xff1a;Map集合中的of方法只能添加10个键值…...

Spring Boot 与 Serverless 集成最佳实践

Spring Boot 与 Serverless 集成最佳实践 引言 大家好&#xff0c;今天想和大家聊聊 Spring Boot 与 Serverless 的集成。Serverless 是一种云原生的计算模型&#xff0c;它允许开发者专注于代码开发&#xff0c;而不需要管理服务器基础设施。在 Spring Boot 应用中&#xff0c…...

如何突破Windows权限壁垒?系统管理专家的秘密武器

如何突破Windows权限壁垒&#xff1f;系统管理专家的秘密武器 【免费下载链接】NSudo [Deprecated, work in progress alternative: https://github.com/M2Team/NanaRun] Series of System Administration Tools 项目地址: https://gitcode.com/gh_mirrors/ns/NSudo 在W…...

ANPC逆变器下垂控制的“阻抗相消术

ANPC-下垂功率均分-两台ANPC三电平逆变器在不同阻感性线路阻抗下实现有功均分与无功均分&#xff0c;采用积分改进法&#xff08;阻抗相消法&#xff09;&#xff0c;电压电流双闭环控制&#xff0c;中点电位平衡控制&#xff0c;SPWM调制。 1.下垂&#xff0c;电压电流双闭环控…...

macOS 环境下的 Fugu14 越狱实战:从环境配置到 Unc0ver 完美激活

1. 准备工作&#xff1a;搭建macOS越狱环境 在开始Fugu14越狱之前&#xff0c;我们需要确保macOS环境配置完善。我实测发现&#xff0c;很多新手卡在第一步环境搭建&#xff0c;其实只要按顺序完成这些准备&#xff0c;后面流程会顺利很多。 首先需要安装Python 3.8或更高版本…...

实战复盘-Redis连接数爆满引发的生产事故与优化策略

1. 事故背景&#xff1a;一场由促销活动引发的Redis雪崩 那天凌晨三点&#xff0c;我被一阵急促的电话铃声惊醒。电话那头是值班同事焦急的声音&#xff1a;"所有商品页面都打不开了&#xff0c;订单系统也瘫痪了&#xff01;"我瞬间清醒&#xff0c;抓起电脑就开始…...

Pencil:重新定义设计与开发的边界

&#x1f3a8; Pencil&#xff1a;重新定义设计与开发的边界 更多问题讨论和资料获取&#xff0c;请关注文章最后的微信公众号 当"设计即代码"成为现实&#xff0c;前端开发者的工作流正在经历一场革命 &#x1f4d6; 什么是 Pencil&#xff1f; 如果你是一名前端开…...

PTA编程题‘Person抽象类’避坑指南:变量命名冲突、多态指针数组与输出格式化的那些坑

PTA编程题‘Person抽象类’避坑指南&#xff1a;变量命名冲突、多态指针数组与输出格式化的那些坑 在C面向对象编程的实战中&#xff0c;抽象类和派生类的设计看似简单&#xff0c;却暗藏诸多陷阱。许多初学者在完成PTA/LeetCode这类编程题时&#xff0c;往往因为一些看似微不足…...

Obsidian Full Calendar:5步构建个人知识与时间管理一体化系统

Obsidian Full Calendar&#xff1a;5步构建个人知识与时间管理一体化系统 【免费下载链接】obsidian-full-calendar Keep events and manage your calendar alongside all your other notes in your Obsidian Vault. 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian…...

WebSocket代理避坑指南:Nginx中proxy_set_header的3个关键配置项

WebSocket代理实战&#xff1a;Nginx中proxy_set_header的3个黄金法则 当在线聊天室的用户突然集体掉线&#xff0c;或是实时协作文档频繁失去同步时&#xff0c;问题往往藏在那些容易被忽视的HTTP头信息里。WebSocket作为现代实时应用的血管&#xff0c;其代理配置的精细程度直…...

Mermaid:文本驱动的可视化引擎深度指南

Mermaid&#xff1a;文本驱动的可视化引擎深度指南 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器&#xff0c;支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图的开发者。 …...