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等),帮助你解决冲突并手动选择要保留的更改。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Request Response 基础篇

Request & Response 在之前的博客中,初最初见到Request和Response对象,是在Servlet的Service方法的参数中,之前隐性地介绍过Request的作用是获取请求数据。通过获取的数据来进行进一步的逻辑处理,然后通过对Response来进行数…

代码随想录算法训练营第38天 | 动态规划理论基础 + 509.斐波那契数 + 70.爬楼梯 + 746.使用最小花费爬楼梯

今日任务 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 动态规划理论基础 理论基础:代码随想录 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划…

Java 正则匹配sql

文章目录 正则匹配sql表名称insert intoupdate 正则表达式什么时候要加^$ 在线正则校验 正则匹配sql表名称 insert into insert into PING_TABLE (CODE, NAME) VALUES(0, 待提交),(1, 审核中),(2, 审核通过),(3, 已驳回); regex -> insert\sinto\s(\w)\s*\(?update upda…

Enemy Rat(老鼠模型)

信息: - 模型有 1.491 个顶点。 - 纹理:颜色、法线、粗糙度、发射、金属、等级(2048x2048 尺寸) 下载: ​​Unity资源商店链接 资源下载链接 效果图:

双创竞赛项目申报:Java + Spring Boot的实战指南

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【解决方案】在Vue、HTML项目中使用@spacechart/translate 插件实现在线实时翻译、自定义翻译

SpaceChart/Translate SpaceChart/Translate 是一个可配置的翻译插件,适用于任何环境,让开发者不再需要注重插件本身;插件支持自定义翻译引擎,快速生成对应的AI翻译模型客户端插件 Repository GitHubNPM Browser Support La…

网络安全全栈培训笔记(60-服务攻防-中间件安全CVE复现WeblogicJenkinsGlassFish)

第60天 服务攻防-中间件安全&CVE复现&Weblogic&Jenkins&GlassFish 知识点: 中间件及框架列表: lIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere,Jenkins, GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Sprng,Flask,jQuery 1、中间件-Web…

什么是ACL?

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…

2024.2.2 模拟实现 RabbitMQ —— 需求分析

目录 引言 生产者消费者模型作用 消息队列核心概念 Broker Server 内部关键概念 Broker Server 核心 API 交换机(Exchange)类型 关于持久化 关于网络通信 总结 引言 问题: 什么是消息队列(Message Queue / MQ&#xff09…

Prometheus 采集Oracle监控数据

前言 oracledb_exporter是一个开源的Prometheus Exporter,用于从Oracle数据库中收集关键指标并将其暴露给Prometheus进行监控和告警。它可以将Oracle数据库的性能指标转换为Prometheus所需的格式,并提供一些默认的查询和指标。 download Oracle Oracle Windows Install …

京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变

一、前言 京东广告训练框架随着广告算法业务发展的特点也在快速迭代升级,回顾近几年大致经历了两次大版本的方案架构演变。第一阶段,随着2016年Tensorflow训练框架的开源,业界开始基于Tensorflow开源框架训练更复杂的模型。模型对特征规模和…

网络异常案例六_IP冲突

问题现象 同一个局域网下,一个路由器带几十台终端设备,存在终端设备获取到了相同IP的场景。该路由器也是DHCP Server。 有两个设备终端,都显示获取到了192.168.11.177这个ip。 抓包分析 抓包过程中,看到的一些问题。 ps&#x…

PSQL常用操作

目录 前言 准备工作 添加postgres用户 初始化数据库 启动服务 创建数据库 psql连接数据库 常规操作 数据库 schema相关 插件 其他 前言 老折腾,还是记录点啥吧...... 基于本地PG数据库(打包为绿色版本了),实操记录,版本pgsql12…

matlab simulink 步进电机控制

1、内容简介 略 41-可以交流、咨询、答疑 2、内容说明 电动执行器定位控制在生产生活中具有广泛的应用,在使用搭载步进电机的电动执行器进行定位控制的时候,定位系统的定位精度和响应波形,会随着负载质量的变化而变化,这是由电…

在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(三)开发和发布自己开发的maven插件

系列文章目录 在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(二)发布自己开发的jar包 文章目录 系列文章目录在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(二)发布自己开发的jar包 前言一、插件需求二、maven自定…

2024年第四届工业自动化、机器人与控制工程国际会议 | Ei、Scopus双检索

会议简介 Brief Introduction 2024年第四届工业自动化、机器人与控制工程国际会议(IARCE 2024) 会议时间:2024年7月5 -7日 召开地点:中国成都 大会官网:www.iarce.org 2024年第四届工业自动化、机器人与控制工程国际会…

设备的层次结构 - 驱动程序的复杂层次结构

由于设备对象的水平结构和垂直结构,组成了Windows设备的树形结构图。在Windows中出事的时候会有一个根设备,为了理解简单,我们将PCI总线想象成根总线(根总线其实不是PCI总线,只是为了理解方便)。查到PCI总线…

【FX110网】日交所发布1月交易数据:衍生品交易额达历年1月最高!

日本交易所集团(日交所,JPX)发布了其2024年1月的交易数据概览。数据显示,该交易所当月衍生品交易额创新历年来的1月交易数据最高纪录。2024年1月共有19个交易日。 2024年1月交易概览现货股票市场 2024年1月,该交易所主…

ElasticSearch-SpringBoot整合ElasticSearch

六、SpringBoot整合ElasticSearch 1、浏览官方文档 1、查找跟ES客户端相关的文档 使用Java REST Client 选择Java Hight Level REST Client 2、创建项目的准备 1.找到原生的依赖 2.找到对象 3.分析这个类里面的方法 3、正式创建项目 1.创建工程 2.导入依赖 注意依赖版本…

Mac电脑连接linux远程桌面

起因 家庭中的内网下有一台ubuntu虚拟机,只能通过ssh终端操作或者通过实体机进行操作实在有些不方便。所以便想着通过linux远程桌面的方式进行连接,由于家庭内网,延迟还是非常低的。 步骤 首先在ubuntu虚拟机上安装xrdp(可能已…