Git 核心概念与实操

devtools/2024/11/15 6:15:38/

这里写目录标题

  • 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/devtools/22143.html

相关文章

制糖工业智能工厂数字孪生可视化平台,推进制糖产业数字化转型

制糖工业智能工厂数字孪生可视化平台,推进制糖产业数字化转型。随着信息技术的快速发展,数字化转型已成为各行各业的重要趋势。在糖果加工制造领域,智能工厂数字孪生可视化平台的出现,为行业数字化转型注入了新的活力。 糖果加工制…

栈和队列--C语言实现

栈的概念及结构 进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底 **压栈&#xff1a;**栈的插入操作叫做进栈/压栈/入栈&#xff0c;入数据在栈顶 **出栈&#xff1a;**栈的删除操作叫做出栈。出数据也在栈顶 栈的实现 链表实现 #include <stdio.h>…

12.Ribbon饥饿加载

Ribbon默认是懒加载的&#xff0c;第一次使用Ribbon访问的时候才会去实例化对象&#xff0c;所以第一次访问比较耗时。 ribbon:eager-load:enabled: true # 开启饥饿加载clients: user-service #对user-service这个服务饥饿加载 多个微服务的写法&#xff1a; ribbon:eager-loa…

论文笔记:Large Language Models Are Zero-Shot Time Series Forecasters

2023 neurips 完全是零样本&#xff08;zero-shot&#xff09;的&#xff0c;不需要微调 1 方法 1.1 Tokenization&#xff08;分词和编码&#xff09; 现有的LLM&#xff08;比如GPT3&#xff09;的tokenizer不能直接用来编码时间序列的句子 比如对数字42235630&#xff0…

PHP+MYSQL多条件选一通用搜索系统功能单文件7KB

通用功能: 快速填写参数用于自己的mysql数据表搜索,ajax载入数据 <?php header("content-Type: text/html; charsetUTF-8"); //error_reporting(0);$dbhost "localhost"; //数据库地址本地localhost $dbuser "chalidecom"; //数据库账号 …

新品发布!无人机装调检修实训系统

近年&#xff0c;我国密集出台相关产业政策&#xff0c;推动低空经济从探索走向发展&#xff0c;根据新华网数据&#xff0c;2030年低空经济规模有望达2万亿。无人机专业属于跨学科的综合性专业&#xff0c;其中装调检测技术是无人机教培的重要组成部分。 天途推出无人机装调检…

Python设计模式(一)

一、简单工厂模式 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2024-04-26 20:24 # Author : Maple # File : 01-简单工厂模式.pyfrom abc import ABC,abstractmethod# 1. 简单入门 class Dog:def speak(self):return "I am Dog"class Cat:def …

【JDBC】基础知识

1.JDBC简介 Java DataBase Connectivity:称为Java数据库连接。它是一种用于数据库访问的应用程序API,由一组用Java编写的类和接口组成。是Java语言中用来规范客户端程序如何访问数据库的应用程序接口&#xff0c;使用JDBC技术&#xff0c;可以用统一的语法对多种数据库进行访问…