Git常用命令diff和mv

2023-09-18 20:09:31

Git常用命令diff和mv

1、diff

# 查看工作区和暂存区所有文件的对比
# 该命令可以显示尚未添加到stage的文件的变更
$ git diff
# 查看工作区和暂存区单个文件的对比
$ git diff file
# 显示暂存区和上一个commit的差异
# 查看暂存区与指定提交版本的不同,版本可缺省为HEAD
$ git diff --cached commit
# 显示工作区与当前分支最新commit之间的差异
$ git diff HEAD
# 比较与上一个版本的差异
$ git diff HEAD^
# 显示今天你写了多少行代码
$ git diff --shortstat "@{0 day ago}"
# 显示添加到stage的文件与当前最新版本之间的差异
# 该命令可以显示添加到stage的文件与当前最新版本之间的差异
$ git diff --staged
# 查看工作区和暂存区所有文件的对比,并显示出所有有差异的文件列表
# 注意
# 1.你修改了某个文件,但是没有提交到暂存区,这时候会有对比的内容,一旦提交到暂存区,就不会有对比的内容(因为暂存区已经更新)
# 2.如果你新建了一个文件,但是没有提交到暂存区,这时候diff是没有结果的
$ git diff --stat
# 查看暂存区与上次提交到本地仓库的快照(即最新提交到本地仓库的快照)的对比
$ git diff --cached/--staged
# 查看工作区与上次提交到本地仓库的快照(即最新提交到本地仓库的快照)的对比
$ git diff branchname
# 查看两个本地分支中某一个文件的对比
$ git diff branchname..branchname filename
# 查看两个本地分支所有的对比
# 该命令可以显示两个分支之间的差异
$ git diff branchname..branchname
# 查看远程分支和远程分支的对比
$ git diff origin/branchname..origin/branchname
# 查看远程分支和本地分支的对比
$ git diff origin/branchname..branchname
# 比较远程分支master上有本地分支master上没有的
$ git diff origin/master..master                            
# 只显示差异的文件,不显示具体内容
$ git diff origin/master..master --stat
# 查看工作区与指定提交版本的不同
$ git diff commit

# 查看两个commit的对比,其中任一可缺省为HEAD
$ git diff commit1..commit2 

# 查看2个不同分支指定提交版本的不同,其中任一可缺省为HEAD
$ git diff commit...commit
# 该命令相当于
$ git diff $(git-merge-base A B) B
# 比较与HEAD版本lib目录的差异
git diff HEAD -- ./lib

2、mv

修改暂存区文件。

# 修改文件名字,并且将这个改名放入暂存区
$ git mv old_file_name new_file_name
# 文件必须纳入版本控制才可以执行git mv
$ touch old_file.txt

$ git mv old_file.txt new_file.txt
fatal: not under version control, source=old_file.txt, destination=new_file.txt
# git add之后修改
$ ls
a.txt  b.txt  c.txt  d.txt  f.txt  new.txt  test.txt

$ touch old_file.txt

$ git add old_file.txt

$ git mv old_file.txt new_file.txt

$ git status
On branch branch_a
Your branch is up-to-date with 'origin/branch_a'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   new_file.txt


$ ls
a.txt  b.txt  c.txt  d.txt  e.txt  f.txt  new.txt  new_file.txt

$ git commit -m "rename file"
[branch_a b54a03a] rename file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 new_file.txt

$ git status
On branch branch_a
Your branch is ahead of 'origin/branch_a' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean
# git commit之后修改
$ ls
a.txt  b.txt  c.txt  d.txt  f.txt  new.txt  test.txt

$ touch old_file.txt

$ git add old_file.txt

$ git commit -m "add old_file.txt"
[develop 360e9c5] add old_file.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 old_file.txt

$ git mv old_file.txt new_file.txt

# 是执行完git add命令之后的结果
$ git status
On branch develop
Your branch is ahead of 'origin/develop' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        renamed:    old_file.txt -> new_file.txt
        
$ ls
a.txt  b.txt  c.txt  d.txt  f.txt  new.txt  new_file.txt  test.txt

$ git commit -m "rename file"
[develop a0ab796] rename file
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename old_file.txt => new_file.txt (100%)
更多推荐

vue页面嵌入飞书网页组件,用于在类似ERP,OA等系统中展示在线文档

先展示最终效果(就是在vue页面中,内嵌了一块ifream页面):1.注册进入飞书开放平台,地址为:飞书开放平台2.进入开放平台后,选择--创建企业自建应用--创建网页应用,然后在主页面记住该应用的appId和appSecret参数,后面要用3.然后注意一点的是,因为后面的授权等逻辑我们一般用我们自己的文档做测试,但是

React antd Select 无法在disabled状态下选择并复制输入框内的内容情况分析及解决方案

文章目录背景问题分析解决思路一:会不会是由于在选择框内hover的时候出现的那个图标导致的解决思路二:会不会是这个span禁止复制解决思路三:去看看antd具体实现最终解决方案其他版本的解决方案antd3.*antd5.*背景在React项目开发中,我们经常会用到antd内的Select组件。有时候我们会在disabl

Eureka注册中心

文章目录1.Eureka的结构与作用2.搭建eureka-server服务3.注册service服务4.服务发现1.Eureka的结构与作用在Eureka架构中,微服务角色有两类:lEurekaServer:服务端,注册中心记录服务信息u心跳监控lEurekaClient:客户端Provider:服务提供者注册自己的信

数据结构前瞻

集合框架JAVA的集合框架是定义在java.util包下的一组接口和实现类,用于将多个元素置于一个单元中,对这些元素进行快速,便捷的存储,减速和管理,即增删查改下面的格子,黄色代表接口,蓝色代表抽象类,棕色代表类是动态数组(顺序表)优先级队列是双向列表底层就是一颗红黑树重要的四个接口算法效率时间复杂度即算法中基本操作的

2022年贵州省职业院校技能大赛中职组网络安全赛项规程

2022年贵州省职业院校技能大赛中职组网络安全赛项规程一、赛项名称赛项名称:网络安全赛项归属:信息技术类二、竞赛目的为检验中职学校网络信息安全人才培养成效,促进网络信息安全专业教学改革,培养大批既满足国家网络安全战略需要有具备世界水平的优秀技能人才,在社会上营造“技能改变命运、匠心成就人生”的崇尚技能的氛围,国家教育部

深入理解WPF中MVVM的设计思想

近些年来,随着WPF在生产,制造,工业控制等领域应用越来越广发,很多企业对WPF开发的需求也逐渐增多,使得很多人看到潜在机会,不断从Web,WinForm开发转向了WPF开发,但是WPF开发也有很多新的概念及设计思想,如:数据驱动,数据绑定,依赖属性,命令,控件模板,数据模板,MVVM等,与传统WinForm,ASP.

Redis实现Session持久化

Redis实现Session持久化1.前言直接使用Session存储用户登录信息,此时的会话信息是存储在内中的,只要项目重启存储的Session信息就会丢失。而使用Redis存储Session的话就不会存在这种情况,即使项目重启也并不影响,也无需用户重新登录。使用Redis存储Session,还能让项目支持分布式的,比

如何将 Transformer 应用于时间序列模型

在机器学习的广阔前景中,transformers就像建筑奇迹一样高高耸立,以其复杂的设计和捕获复杂关系的能力重塑了我们处理和理解大量数据的方式。自2017年创建第一个Transformer以来,Transformer类型呈爆炸式增长,其中包括ChatGPT和DALL-E等强大的生成式AI模型。虽然transformer

Beyong compare 介绍

"BeyondCompare"是一个强大的文件和文件夹比较工具,它允许你比较两个或更多的目录/文件并显示差异。这个工具特别有用,当你需要找出两个不同版本的文件之间的改变时。如果你想要使用BeyondCompare,你需要按照以下步骤操作:1.**下载和安装**:首先,你需要从BeyondCompare的官方网站或其他可

接口文档规范

接口文档规范主要包括以下几个方面:1.接口基本信息应该在文档的开头提供接口的基本信息,包括接口名称、接口URL、请求方法、请求参数、返回值、返回状态码等。这些信息应该清晰明了,并且易于理解。2.请求参数接口文档应该明确列出请求参数,并提供每个参数的名称、类型、是否必填、描述等信息。对于复杂结构的请求参数,例如JSON或

从网约车平台合规问题看企业合规难题如何破解

随着互联网的快速发展,网约车行业逐渐崛起并成为人们出行的重要选择之一。然而,虽然网约车平台带来了便利和效率,但也引发了一系列合规问题。近日,西安市交通运输综合执法支队和西安市出租汽车管理处组织开展了西安市网约车行业“全过程执法、全链条监管、全合规营运百日攻坚行动”。约谈会上,西安市出租汽车管理处相关负责人通报了“百日攻

热文推荐