diff命令

github之diff命令

1.前言

观察上一章写的时候,居然发现少写了一个命令,那就是git commit -m "描述",只有这个命令,暂存区里的文件才能真的被提交到版本库里。具体的整体,我会再最后面讲述。

2. diff

diff命令用于比较各个文件之间的差异的命令。但是diff命令有好几种:

git diff
git diff HEAD
git diff --staged
  • 1
  • 2
  • 3

他们之间都有什么区别呢。首先我们要明确一点是,github的工作体系,就简单的体系来讲(不包括分支等,那个以后我们再完善。),主要分为工作区,暂存区和版本库3个部分。

具体的情况如下;

  • 当暂存区无文件时,git diff比较的是工作区与版本库之间的区别,此时和`git diff HEAD一致。

  • 当暂存区有文件时,git diff比较的是工作区与暂存区之间的区别。 
    git --staged比较的是暂存区与版本库之间的区别。

当然,默认情况下,是给出所有不同文件的,但bash是分文件给的,当有多个文件不同的时候,它会先显示一个不同的文件内容,然后光标前有一个:,如果你按d键,那么它会显示下一个不同的文件,如果你按ENTER键,它会逐行显示下一行。

事实上,它默认的工作方式是按行给出不同,你还可以使用:

git diff --color-words
git diff --word-diff
git diff --stat
  • 1
  • 2
  • 3

等来改变显示不同的方式。

这样说来,就明白了许多吧。

3. 提交与撤销

工作区提交到暂存区的命令为git add 文件名,暂存区提交到版本库的命令为git commit -m "描述"

相应的撤销是:

  • 当工作区文件修改还没有提交到暂存区时,git check --文件名回退到的是和当前版本库里的版本一致的。

  • 当工作区文件修改已经提交到暂存区时,git check --文件名回退到的是和暂存区里的版本一致的。

git reset HEAD 文件名则可以把暂存区里的文件重新放回工作区中。

而如果你想对版本库进行版本回退与前进(如果你已经会退到了未来),那么你可能需要以下几个命令:

git log //查询每次提交的ID
git relog //查询所有历史和未来的提交ID,以便于能回到未来。
git reset --hard HEAD^ //回退到上一版本
git reset --hard HEAD^^ //回退到上上一版本
git reset --hard 版本ID //回退到指定版本
  • 1
  • 2
  • 3
  • 4
  • 5

4. 小结

本文中,我们对于github的追踪不同的修改进行了一定的讲解。这里再次感谢《github官方教程》以及《廖雪峰的git教程》和《阮一峰的git教程》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值