Git 实战场景过程(工作总结篇)

目录

  • 前言
  • 1. Git远程仓库建立分支,本地未显示
    • 1.1 问题所示
    • 1.2 知识补充
  • 2. Git暂存内容切换分支
    • 2.1 问题所示
    • 2.2 知识补充
  • 3. Git放弃修改数据
    • 3.1 问题所示
    • 3.2 知识补充
  • 4. git merge合并查看差异

前言

主要总结工作中的疑惑点,如果你也有相应的场景,可以评论区见,我来补充总结

对于详细的Git基本知识推荐阅读:

  1. Git从入门到精通(全)
  2. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)

对于其他Git方面的知识也可阅读如下:Git问题专栏

1. Git远程仓库建立分支,本地未显示

1.1 问题所示

远程仓库中创建了新分支:
在这里插入图片描述
但是在本地中找不到新分支:

在这里插入图片描述

1.2 知识补充

这是由于远程仓库中尚未拉取到本地,需要及时及时的拉取,才能在本地中找到新建立的分支

本地仓库并没有同步远程仓库的信息,需要执行以下步骤来获取远程仓库的新分支:

  1. 拉取远程分支信息git fetch
  2. 查看所有分支(包括远程分支)git branch -a
  3. 切换到新分支(这将创建一个本地分支,并将其设置为远程分支的跟踪分支)git checkout -b 本地分支名 origin/远程分支名
  4. 拉取新分支的代码git pull origin 远程分支名

最终截图如下:

在这里插入图片描述

2. Git暂存内容切换分支

2.1 问题所示

如果在自身开发的分支中新增了很多的代码,但是由于某个功能代码块有问题,需要及时修复并且上传那一部分代码!

这时候自身开发的分支的新代码需要怎么做一个暂存呢?还是放弃呢?

2.2 知识补充

方案一: 暂存修改

在切换分支之前,可以使用git stash命令将当前分支的修改暂存起来。这样可以保存你的工作目录状态,然后再切换到其他分支。当你完成另一个分支的工作后,可以再次切回原分支,并使用git stash pop来还原之前暂存的修改。

  1. 暂存当前分支的修改 : git stash

  2. 切换到其他分支进行工作: git checkout 其他分支

  3. 在其他分支完成工作后,切回原分支: git checkout 原分支

  4. 还原之前暂存的修改: git stash pop

方案二: 创建临时分支

创建一个临时分支,用于保存当前分支的修改,切换到另一个分支进行工作
完成另一个分支的工作后,可以再次切回原分支,合并或应用之前的修改

  1. 创建临时分支保存当前分支的修改:
git checkout -b 临时分支
git add .
git commit -m "保存当前分支的修改"
  1. 切换到其他分支进行工作: git checkout 其他分支

  2. 在其他分支完成工作后,切回原分支: git checkout 原分支

  3. 合并或应用之前的修改 : git merge 临时分支

方案三:不保存修改直接切换

不想保存当前分支的修改,可以使用git checkout -f强制切换分支。请注意,这会丢弃未提交的修改,慎用。

强制切换分支,丢弃未提交的修改: git checkout -f 目标分支

3. Git放弃修改数据

3.1 问题所示

写的不好的代码,一个个删除还原太过于麻烦了。关闭软件的话,暂存的代码又还在!

有没有一步到位,直接重置到最新的一版呢?

3.2 知识补充

方案一: 放弃所有未提交的修改

git reset --hard

这个命令会强制将工作区和暂存区的所有修改都恢复到最近的一次提交的状态,慎用,因为它会永久丢失所有未提交的修改

在这里插入图片描述

方案二: 使用git checkout放弃未提交的修改

这个命令会撤销当前目录下所有未提交的修改,不包括新添加的文件

git checkout .

如果有新添加的文件,可以使用以下命令:
这个命令会删除工作区中所有未追踪的文件和目录,慎用,因为它会永久删除这些文件。

git clean -fd

请注意,这些命令会永久性地删除未提交的修改,因此在执行之前,请确保你真的不需要这些更改

4. git merge合并查看差异

在Git中,git merge用于将两个分支的更改合并在一起。在执行合并之前,通常会比较两个分支的差异,以确保合并是干净的。以下是一些比较两个分支差异的方法:

  1. 使用git diff命令:
    这将显示branch1和branch2之间的差异
git diff branch1 branch2

下图中不加…也可,加不加都一样!
在这里插入图片描述

  1. 使用git log命令:
    这将显示在branch2中而不在branch1中的提交历史。你也可以添加–oneline等选项来简化输出
git log branch1 branch2

在这里插入图片描述

  1. 使用可视化工具如Git图形界面
    一些图形界面工具如GitK、SourceTree、GitHub Desktop等,提供了直观的分支比较和合并工具,允许你可视化查看并选择要合并的更改。

  2. 使用合并工具如git mergetool
    如果存在合并冲突,可以使用git mergetool命令启动一个合并工具(如vimdiff、meld、kdiff3等),帮助你解决冲突并手动选择要保留的更改。

确保在合并之前理解分支之间的差异,以便更好地决定如何合并或解决冲突。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/251035.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux网络编程一】网络基础1(网络框架)

【Linux网络编程一】网络基础1(网络框架) 一.什么是协议1.通信问题2.协议本质3.网络协议标准 二.协议分层1.为什么协议要分层2.如何具体的分层 三.操作系统OS与网络协议栈的关系1.核心点:网络通信贯穿协议栈 四.局域网中通信的基本原理1.封装…

20.HarmonyOS App(JAVA)表格布局Layout使用方法

ability_main.xml&#xff0c;实现计算器键盘按钮 <?xml version"1.0" encoding"utf-8"?> <TableLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"ohos:width"match_parent"oho…

【Midjourney】新手指南:命令

1./ask 向Midjourney提问&#xff0c;不过问题和回答都是英文的&#xff0c;例如&#xff1a; 2./blend 将两张图片合并为一张 ​ 3./describe 上传一张图片&#xff0c;Midjourney会生成四组该图片相关的关键词&#xff0c;可以使用这些关键词再生成图片。 ​ 4./turbo …

数据结构中的时间复杂度和空间复杂度基础

目录 数据结构 数据结构中的基本名词 数据 数据对象 数据元素 数据项 数据类型 数据对象、数据元素和数据项之间的关系 数据结构及分类 逻辑结构 物理结构 算法 算法的特点 算法设计上的要求 算法效率的衡量 时间复杂度 大O渐进表示法 最坏情况和平均情况 常…

大模型增量预训练新技巧:解决灾难性遗忘

大家好&#xff0c;目前不少开源模型在通用领域具有不错的效果&#xff0c;但由于缺乏领域数据&#xff0c;往往在一些垂直领域中表现不理想&#xff0c;这时就需要增量预训练和微调等方法来提高模型的领域能力。 但在领域数据增量预训练或微调时&#xff0c;很容易出现灾难性…

【开源】基于JAVA+Vue+SpringBoot的河南软件客服系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

css新手教程

css新手教程 课程&#xff1a;14、盒子模型及边框使用_哔哩哔哩_bilibili 一.什么是CSS 1.什么是CSS Cascading Style Sheet 层叠样式表。 CSS&#xff1a;表现&#xff08;美化网页&#xff09; 字体&#xff0c;颜色&#xff0c;边距&#xff0c;高度&#xff0c;宽度&am…

Node.js-1

Node.js 简介 定义&#xff1a;Node.js 是一个跨平台 JavaScript 运行环境&#xff0c;使开发者可以搭建服务器端的 JavaScript 应用程序 为什么 Node.js 能执行 JS 代码&#xff1a; Chrome 浏览器能执行 JS 代码&#xff0c;依靠的是内核中的 V8引擎&#xff08;即&#x…

【Iot】什么是串口?什么是串口通信?串口通信(串口通讯)原理,常见的串口通信方式有哪些?

串口通信原理 1. 串口2. 串口通信4. 波特率与比特率5. 帧格式3. 串口通讯的通讯协议3.1. RS2323.2. RS485 总结 1. 串口 串行接口简称串口&#xff0c;也称串行通信接口或串行通讯接口&#xff08;通常指COM接口&#xff09;&#xff0c;是采用串行通信方式的扩展接口。 串口可…

python二维高斯热力图绘制简单的思路代码

import numpy as np import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter import cv2# 生成一个示例图像 image_size 100 image np.zeros((image_size, image_size))# 在图像中心创建一个高亮区域 center_x, center_y image_size // 2, image_size …

[工具探索]Safari 和 Google Chrome 浏览器内核差异

最近有些Vue3的项目&#xff0c;使用了safari进行测试环境搞开发&#xff0c;发现页面存在不同程序的页面乱码情况&#xff0c;反而google浏览器没问题&#xff0c;下面我们就对比下他们之间的差异点&#xff1a; 日常开发google chrome占多数&#xff1b;现在主流浏览器 Goog…

【LeetCode: 292. Nim 游戏+ 博弈问题】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

MagicVideo-V2:多阶段高保真视频生成框架

本项工作介绍了MagicVideo-V2&#xff0c;将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处&#xff0c;MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估&…

(bean配置类的注解开发)学习Spring的第十三天

bean配置类的注解开发 问题提出 用类充当配置文件 applicationcontext.xml : Configuration注解标识此类为配置类,替代原有xml文件 看原配置文件applicationcontext.xml代码 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http:/…

cesium-水平测距

cesium测量两点间的距离 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><el-breadcrumb-item&…

Qt实现类似ToDesk顶层窗口 不规则按钮

先看效果&#xff1a; 在进行多进程开发时&#xff0c;可能会遇到需要进行全局弹窗的需求。 因为平时会使用ToDesk进行远程桌面控制&#xff0c;在电脑被控时&#xff0c;ToDesk会在右下角进行一个顶层窗口的提示&#xff0c;效果如下&#xff1a; 其实要实现顶层窗口&#xf…

【ELK】logstash快速入门

1.概述 1.1.什么是logstash&#xff1f; 之前我们聊了es&#xff0c;并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的&#xff0c;然后结合kibana对日志做一些可视化的工作。既然要收集日志&#xff0c;就面临着一个问题&#xff1a; 各个系统的…

如何保证MySQL和Redis中的数据一致性?

文章目录 前言一、缓存案例1.1 缓存常见用法1.2 缓存不一致产生的原因 二、解决方案2.1 先删除缓存&#xff0c;再更新数据库2.2 先更新数据库&#xff0c;删除缓存2.3 只更新缓存&#xff0c;由缓存自己同步更新数据库2.4 只更新缓存&#xff0c;由缓存自己异步更新数据库2.5 …

ElementUI 组件:Layout布局(el-row、el-col)

ElementUI安装与使用指南 Layout布局 点击下载learnelementuispringboot项目源码 效果图 el-row_el-col.vue页面效果图 项目里el-row_el-col.vue代码 <script> export default {name:el-row_el-col 布局 }</script><template><div class"roo…

C/C++ (stdio.h)标准库详解

cstdio,在C语言中称为stdio.h。该库使用所谓的流与物理设备&#xff08;如键盘、打印机、终端&#xff09;或系统支持的任何其他类型的文件一起操作。 在本文将会通过介绍函数参数&#xff0c;举出实际的简单例子来帮助大家快速上手使用函数。 目录 一、流 二、库函数 1、F…