Git 核心概念与实操

ops/2024/9/24 23:04:36/

这里写目录标题

  • 1 版本回退
  • 2 工作区、暂存区、本地仓库、远程仓库
  • 3 分支合并
    • 3.1 Fast-forward
    • 3.2 Recursive
    • 3.3 Ours & Theirs
  • 4 处理冲突
  • 5 git stash 存储工作区

参考:https://www.liaoxuefeng.com/wiki/896043488029600

1 版本回退

原文链接:https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192
首先 git log 查看提交记录
在这里插入图片描述
在Git中,用 HEAD 表示当前版本
上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^,往上100个版本写成 HEAD~100
要把当前版本回退到上一个版本,就可以使用 git reset 命令:

git reset --hard HEAD^
git reset --hard commit的id
(如果使用cmd命令行,第一种要加引号:git reset --hard "HEAD^"

当前文件内容:
在这里插入图片描述

输入回退命令后:
在这里插入图片描述

在这里插入图片描述
如果想要回到我的最近版本:

git reset --hard 70597932a3e34eab2fd8c2eae42dd5520e3351c6

在这里插入图片描述
在这里插入图片描述

2 工作区、暂存区、本地仓库、远程仓库

工作区: 工作区就是你克隆项目到本地后,项目所在的文件夹目录。

暂存区: 用于存储工作区中添加上来的变更(新增、修改、删除)的文件的地方。操作时,使用git add .会将本地所有新增、变更、删除过的文件的情况存入暂存区中。

本地仓库: 用于存储本地工作区和暂存区提交上来的变更(新增、修改、删除)过的文件的地方。操作时,使用git commit –m “本次操作描述” 可以将添加到暂存区的修改的文件提交到本地仓库中。

远程仓库: 简单来说,就是我们搭建在服务器上的 git 远程仓库(如 github )。操作时,使用git push origin 分支名称,将本次仓库存储的当前分支的修改推送至远程仓库中的对应分支中。
在这里插入图片描述

3 分支合并

https://zhuanlan.zhihu.com/p/192972614

3.1 Fast-forward

Fast-forward 是最简单的一种合并策略,如上图中将 some feature 分支合并进 master 分支,Git 只需要将 master 分支的指向移动到最后一个 commit 节点上。
Fast-forward 是 Git 在合并两个没有分叉的分支时的默认行为
Fast-forward方式实操过程: https://www.liaoxuefeng.com/wiki/896043488029600/900005860592480
在这里插入图片描述

3.2 Recursive

Git 在合并两个有分叉的分支时的默认行为,会递归寻找路径最短的唯一共同祖先节点,然后以其为 base 节点进行递归三向合并
如下图这种简单的情况,当我们要合并中间两个节点的时候,找到他们的共同祖先节点(左边第一个),接着进行三向合并得到结果为 B
在这里插入图片描述

3.3 Ours & Theirs

4 处理冲突

https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

git_stash__61">5 git stash 存储工作区

https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136
若当前正在 dev 上进行开发,突然收到 bug 修改任务,要在分支 issue-101 来修复。但是当前正在dev上进行的工作还没完成,不能提交。
Git提供了一个 git stash 功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
执行 git stash 后,用 git status 查看工作区,就是干净的
然后我们切换到分支 issue-101 修复 bug ,修复完成后,是时候接着回到 dev 分支干活了!
回到 dev,工作区是干净的,刚才的工作现场存到哪去了?用 git stash list 命令看看工作现场
然后用 git stash pop,恢复工作现场,同时删除 stash 内容
再用 git stash list 查看,就看不到任何stash内容了


http://www.ppmy.cn/ops/25160.html

相关文章

C++ 核心编程(2)

4.6.8 菱形继承 #include<iostream> #include <bits/stdc.h> using namespace std; //菱形继承 //动物类 class Animal{ public:int mAge; }; //羊 class Sheep : public Animal{}; //驼 class Tuo : public Animal{}; //羊驼 class SheepTuo:public Sheep,pu…

Json-server 模拟后端接口

json-server&#xff0c;模拟rest接口&#xff0c;自动生成增删改查接口。(官网地址&#xff1a;json-server - npm) 使用方法&#xff1a; 1. 安装json-server&#xff0c;npm i json-server -g 2. 创建json文件&#xff0c;文件中存储list数据&#xff0c;db.json {"…

实施运维工程师面试题

实施工程师面试题 (一)电脑网络,软硬件以及软件实施工程师要掌握的基本常识 两台电脑都在同一个网络环境中,A电脑访问不到B电脑的共享文件。此现象可能是哪些方面所至?如何处理?首先你要确定是不是在一个工作组内,只有在一个工作组内才可以共享文件,查看共享服务是否被…

stm32 hid自定义接收发送程序开发过程记录

cubleMX配置如下 修改端点描述符一次传输的数据大小 根据cubelMX标准在这里修改 编译错误 直接修改&#xff08;因为没有使用nodef &#xff09;编译通过 修改报告描述符&#xff08;默认的描述符无法传输数据&#xff09; 参考&#xff1a;USB协议详解第10讲&#xff08;USB描…

创维汽车亮相2024北京车展 100kW直流放电技术颠覆传统补能体系

在新质生产力的推动下&#xff0c;汽车行业正面临重塑产业格局、实现转型升级的迫切需求。4月25日&#xff0c;以“新时代 新汽车”为主题的2024北京国际汽车展览会拉开帷幕。作为拥有深厚制造业基因的企业&#xff0c;创维汽车于当日下午举办主题为“颠覆-开启移动补能新时代”…

电机介绍c

文章目录 1233.13.2 3.33.43.5 4 1 2 驱动用 赛车电源 控制用 打印机 停在那个位置 3 舵机 比较小&#xff1f; 3.1 DC就是直流 BDC操控方便 接个5号电池 正负极一反 电机就反&#xff08;电压控制 电压越大 转速越高&#xff09;噪声大这里寿命是连续 工作的&#xff08;寿命…

去中心化自治组织(DAO)

文章目录 一、DAO (Decentralized Autonomous Organization) 去中心化自治组织 二、举例说明 1、例子1 2、例子2 总结 一、DAO (Decentralized Autonomous Organization) 去中心化自治组织 DAO是一种基于区块链平台上的组织结构&#xff0c;它通过智能合约来实现组织的…

[React] 手动实现CountTo 数字滚动效果

这个CountTo组件npmjs里当然有大把的依赖存在&#xff0c;不过今天我们不需要借助任何三方依赖&#xff0c;造个轮子来手动实现这个组件。 通过研究其他count to插件我们可以发现&#xff0c;数字滚动效果主要依赖于requestAnimationFrame 通过js帧来让数字动起来&#xff0c;…