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.hqwc.cn/news/450366.html

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

相关文章

C++之std::tuple(一) : 使用

相关系列文章 C之std::tuple(一) : 使用 C三剑客之std::variant(一) : 使用 C三剑客之std::variant(二):深入剖析 目录 1.简介 2.创建元组 2.1.直接初始化方式 2.2.使用花括号初始化列表方式(C11及以上版本) 2.3.make_tuple方式 2.4.使…

【MIT 6.S081】2020, 实验记录(5),Lab: lazy allocation

目录 Task 1: Eliminate allocation from sbrk()Task 2: Lazy allocationTask 3: Lazytests and Usertests 在学习了 page fault 这一节课后,了解了操作系统是如何结合 page table 和 trap 利用 page fault 来实现一系列的神奇的功能。这个 lab 就是在 XV6 中实现 l…

[SWPUCTF 2021 新生赛]easyupload2.0

一开始我通过cobaltstrike写一个文件上传的木马它不允许上传php文件 我这边写了一句话木马通过burp拦截修改后缀为phtml然后通过蚁剑找flag

【数据结构】链表OJ面试题2(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 休息一天,今天继续刷题! 2.OJ题目训练 1. 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。链表分割_牛客题霸_牛客网 思路 既然涉及…

Acwing第 141 场周赛

A题 签到模拟即可 B题 单独考虑每一个a[i]&#xff0c;如果i要是答案需要指针移动多少次&#xff0c;然后算完&#xff0c;排个序&#xff0c;指针移动最少的就是答案。 #include <bits/stdc.h> #define int long long #define rep(i,a,b) for(int i (a); i < (…

【QT+QGIS跨平台编译】之二十二:【FontConfig+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、FontConfig介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、FontConfig介绍 FontConfig 是一个用于配置和定制字体的库&#xff0c;广泛应用于基于X Window系统的操作系统中&#xff0c;尤其是在Linux和Unix-like系统中。它为应用程序提供了一种统一的…

车载测试Vector工具——基于DoIP的ECU/车辆的连接故障排除

车载测试Vector工具——基于DoIP的ECU/车辆的连接故障排除 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和…

【周总结】Programmer‘s weekend routine---First week of February

总结 工作&#xff1a; 参加项目重构方案讨论会议、个人任务计划分期以及工期安排、项目初步重构开发 日常&#xff1a;参加年会&#xff08;阳光普照奖都莫得&#xff09; 2024.2.3 阴 不冷 连着一周的雨&#xff0c;我那袜子挂两三天了还能挤出水。。离谱、莆…

MySQL全表扫描:性能杀手的隐患与优化策略

MySQL全表扫描&#xff1a;性能杀手的隐患与优化策略 MySQL数据库作为常用的关系型数据库管理系统之一&#xff0c;全表扫描问题一直困扰着开发者。本文将深入剖析MySQL全表扫描的原理、其对性能的严重影响&#xff0c;同时提供一系列优化策略&#xff0c;助您高效应对MySQL性能…

2.3作业

一&#xff0e;选择题 1、适宜采用inline定义函数情况是&#xff08;C&#xff09; A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A (1);”语句后&#xff0c;i和j的值分别…

TQ15EG开发板教程:开发板资源介绍

时钟资源 采用时钟芯片CDCM6208提供系统时钟 PL端时钟 PS 收发器时钟 PL收发器时钟 电源 BANK500 BANK501 BANK502 BANK503(专用) 1.8V 1.8V 1.8V 1.8V PS端外设 QSPI 采用2片MT25QU256 拼接成8bit的QSPI存储系统。采用1.8V供电 SD卡 SATA接口 PS端以太网接口 D…

字符数组的学习

前言&#xff1a; 在前面我们介绍过字符型数据是以字符的ASCII码储存在存储单元中&#xff0c;一般占一个字节&#xff0c;由于 ASCII码也属于整数类型&#xff0c;因此在C99标准中把字符类型归纳为整数类型中的一种&#xff0c;由于字符数据 的应用比较广泛&#xff0c;尤其…