git:git rm --cached和git rm -f和git restore --staged的区别(附带详细步骤测试)和git diff比较本地分支和远程分支的区别(细分到文件/文件)

git rm --cached和git rm -f和git restore --staged的区别

当试图删除一个已经git add在暂存区的文件,我们使用

  • git rm --cached:从暂存区中移除,但保留在工作区中,且工作区中的文件内容在执行命令前需要还原到最后一次git add的状态,即暂存区的状态。否则删除失败
  • git rm -f:从暂存区中移除,也从工作区中移除。
  • git restore --staged:从暂存区中移除,但保留在工作区中,且工作区中的文件内容的修改还在。

步骤一:新创建一个test文件,输入内容如下,之后git add,此时文件的内容和颜色如下:
在这里插入图片描述
步骤二:然后再复制粘贴一行,此时文件的内容就和最后一次git add的内容不一致了
在这里插入图片描述
步骤三:这个时候我们输入git rm --cached test 会报错,意思就是我们现在工作区的内容和暂存区的内容不一致,会删除失败。除非我们直接用-f将工作区和暂存区的文件都删了(大家都别活了嘿嘿嘿,豆沙了😋
在这里插入图片描述
步骤四:但是我们如果输入git restore --staged test,发现可以文件的颜色变为红色,意味着从暂存区中删除。而且工作区的内容依旧是我们修改后的两行代码。测试git restore --staged test成功
在这里插入图片描述
步骤五:这时候我们将两行代码删掉一行,并git add,相当于回退到步骤一结束。然后再输入git rm --cached test,发现文件的颜色变为红色,意味着从暂存区中删除。测试git rm --cached test成功
在这里插入图片描述
步骤六:这时我们再次git add,相当于再次回退到步骤一结束。然后在文件下再复制粘贴几行,此时文件的内容就和最后一次git add的内容不一致了。然后输入git rm -f test。文件直接从工作区和暂存区都没了。测试git rm -f test成功

比较本地分支和远程分支的区别(git diff)

基础命令

git diff --stat --color <本地分支> <远程分支>
git diff  <本地分支> <远程分支>

git diff --stat --color 命令会输出两个分支之间的差异统计信息,包括修改的文件名、添加的行数、删除的行数等,并用颜色标记差异。

git diff 命令会输出两个分支之间的详细差异信息,包括每个文件的修改内容、添加的行数、删除的行数等等。

细分到文件夹/文件

如果想要细分到本地分支和远程分支的某个文件夹/文件做比较,那么可以用

git diff  <本地分支> <远程分支> -- <从项目根目录开始的文件夹/文件路径>

比较本地分支的某个文件夹/文件和远程分支,还有本地分支的某个文件夹/文件和远程分支的某个文件夹/文件也是一样的。

譬如我现在本地只有一个main分支,想要比较远程分支master下面的template文件夹,那么我的命令是

git diff main origin/master -- framework_template

可能用到的相关命令(branch和fetch)

注意先用branch命令看下分支有哪些。

git branch -r 会列出远程仓库的分支,但不包括本地仓库的分支。
git branch -a 会列出本地仓库和远程仓库的所有分支。
git branch 会列出本地仓库的所有分支。

如果定义了远程仓库,但是没有远程分支的信息,用git fetch origin命令拉取一下远程分支的信息即可。

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

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

相关文章

Python程序怎么打包成exe文件

前言 pyinstaller可以将.py文件打包成.exe可执行文件&#xff0c;即使别人的电脑上没有搭建Python环境&#xff0c;也是可以直接运行程序的。 pyinstaller安装 首先打开cmd&#xff0c;在里面输入下面这一行命令&#xff0c;回车即可。 pip install pyinstaller 我运行命令…

网络七层模型之表示层:理解网络通信的架构(六)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

MYSQL数字函数实操宝典:场景化SQL语句一网打尽

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MYSQL数字函数&#xff1a;不可不知的数据处理利器 文章目录 Part 1: 准备 &#x…

基于springboot+vue+Mysql的财务管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

python实现app自动化时一直连不上Appium

背景 在尝试python做APP自动化测试时&#xff0c;发现连不上Appium&#xff0c;我是连接模拟器里的APP 过程 一直以为是我调用初始化APP类方法时&#xff0c;实例化不对&#xff1b;一直翻阅资料也没有个所以然&#xff1b;后来发现模拟器APP的版本是Android 12&#xff1b;py…

正弦实时数据库(SinRTDB)的使用(6)-历史插值查询

前文已经将正弦实时数据库的使用进行了介绍&#xff0c;需要了解的可以先看下面的博客&#xff1a; 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…

Voodoo中国区刘毅:全球爆款休闲游戏的创意选品与研发发行 | TopOn观察

10月28日&#xff0c;由TopOn联合罗斯基主办的“游戏赛道新机会”主题沙龙在成都举办。活动邀请了多位国内外知名公司及游戏爆款产品的负责人分享&#xff0c;分别从各自的方向及经验出发&#xff0c;以数据、案例、产品分析、行业趋势等多个维度&#xff0c;为行业从业者带来独…

设计模式 —— 设计原则

在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;程序员要尽量根据6条原则来开发程序&#xff0c;从而提高软件开发效率、节约软件开发成本和维护成本。 开闭原则 对扩展开放&#xff0c;对修改关闭。在程序需…

记CMakeLists.txt中已经配置-fPIC参数但未生效的解决方案

文章目录 1. 问题背景2. CMake中添加-fPIC的方式3. 检查-fPIC是否添加成功4. CMakeLists.txt中已经配置-fPIC参数但未生效的解决方案 1. 问题背景 博主的库会被编译成一个供第三方使用的静态库&#xff0c;第三方在使用博主的库编译动态库时&#xff0c;若不加-fPIC会报unreso…

vue3封装Element动态表单组件

1. 封装组件DymanicForm.vue 使用component实现动态组件组件不能直接使用字符串传入&#xff0c;所以根据传入的组件名称找到对应的组件校验规则&#xff0c;可使用rule传入自定义规则&#xff0c;也可以使用封装好的基本规则 示例中使用了checkRequired暴露重置方法和校验方法…

奥比中光深度相机(二):PyQt5实现打开深度摄像头功能

文章目录 奥比中光深度相机&#xff08;二&#xff09;&#xff1a;PyQt5实现打开深度摄像头功能官方给出的调用深度相机源码环境精炼 UI界面设计逻辑代码构建槽函数连接提取视频流在界面中显示深度视频流注意关闭相机 总体代码效果演示运行main.py代码选择相机打开摄像头关闭摄…

没学数模电可以玩单片机吗?

我们首先来看一下数电模电在单片机中的应用。数电知识在单片机中主要解决各种数字信号的处理、运算&#xff0c;如数制转换、数据运算等。模电知识在单片机中主要解决各种模拟信号的处理问题&#xff0c;如采集光照强度、声音的分贝、温度等模拟信号。而数电、模电的相互转换就…