git:三、git rm删除文件+gitignore忽略+git diff比较差异(附带详细步骤教程)

git rm 删除文件

注意以下所有操作都只针对工作区和暂存区,如果需要删除后真正生效,还需要额外提交

git rm 某个文件名   

把文件从工作区和暂存区同时删除

git rm --cached 某个文件名 

把文件从暂存区删除,但保留在工作区中

git rm -r *

递归删除某个目录下的所有子目录和文件

gitignore忽略文件

一般需要忽略的文件

在这里插入图片描述

git diff 比较差异

git diff

比较工作区中被追踪的文件和暂存区的不同。

  1. 新创建一个文件test git diff,不进行git add,也不输入内容,那么输入git diff 不会显示任何内容,因为他不是工作区中被追踪的内容。
  2. 此时在文件test git diff里输入内容this is test1,再次输入git diff 也不会显示任何内容,因为他仍然不是工作区中被追踪的内容。
  3. 此时进行git add,那么输入git diff 不显示任何内容,因为此时工作区的内容和暂存区内容一致。
  4. 修改文件内容为this is test2后直接输入git diff,那么会显示内容如下
    在这里插入图片描述
    实际开发中主要看红色字和绿色字即可,前者表示暂存区的内容,后者表示工作区的内容。

git diff HEAD

比较工作区和仓库的不同

  1. 仍然是刚刚的文件,修改内容为this is test3,然后git add. git commit,此时本地仓库中是this is test3
  2. 然后修改内容为this is test2,然后git add,此时暂存区中是this is test2
  3. 再次修改内容为this is test1,此时工作区、暂存区、本地仓库分别为test1 2 3
  4. 然后输入git diff HEAD,那么会显示内容如下:
    在这里插入图片描述
    实际开发中主要看红色字和绿色字即可,前者表示仓库的内容,后者表示工作区的内容。

git diff --cached和git diff --staged

比较暂存区和仓库的不同
用刚刚的文件,不作任何修改,直接输入

git diff --cached

应该会显示如下:
在这里插入图片描述
直接输入

git diff --cached

应该会显示如下:
在这里插入图片描述
那–cached和–staged有什么不同?
没有任何不同,单纯是随着git的发展,一个命令有了两个名称而已

git diff commit1哈希值 commit2哈希值 和 git diff HEAD~ HEAD

比较提交之间的不同
新创建一个文件,名字叫testgitdiff

  1. 更改文件内容为this is commit a,然后git addgit commit -m 'commit a'
  2. 更改文件内容为this is commit b,然后git addgit commit -m 'commit b'
  3. 更改文件内容为this is commit c,然后git addgit commit -m 'commit c'

此时我们得到了三个提交,可以从pycharm等自带的git页面点进去每个提交,可以看到类似f7fbc36e之类的就是该次提交唯一的短哈希值
在这里插入图片描述
也可以输入命令git log得到每次提交的长哈希值。
同时可以看到HEAD此时位于commit c处,那么HEAD~1,表示倒数第二个提交就是在commit b,HEAD~2就是在commit a处。

在这里我们三个提交的信息如下:

提交短哈希长哈希离HEAD距离
commit a9c814a2e9c814a2e42d4417672097d9a786fc43abd31e044HEAD~2
commit b25daeaf325daeaf3456e9694f0b3cfb0cce17477f40a5fd5HEAD~1
commit cf7fbc36ef7fbc36ef975f9aba784079cc6d511acc6889b64HEAD

随便测几个吧~懂我意思就好
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

git diff 分支名1 分支名2

比较分支仓库之间的不同
使用git checkout -b testgit创建一个新分支,同时用git branch查看当前分支有哪些
在这里插入图片描述
可以看到我这里的演示环境还是比较干净的,只有这两个分支。然后当前处于testgit分支上

  1. 新创建一个文件,名叫gittest,输入git diff main testgit,没有输出,因为此时文件没有在testgit的仓库里
  2. 进行git add,输入git diff main testgit,没有输出,因为此时文件仍没有在testgit的仓库里
  3. 进行git commit,输入git diff main testgit,输出如下
    在这里插入图片描述
    第一行输出了具体是哪两个文件不同。
  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸡鸭扣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值