返回介绍

查看已暂存和未暂存的修改

发布于 2024-12-09 12:49:34 字数 2937 浏览 0 评论 0 收藏 0

可以使用 git diff 命令。那么 git diff 到底比较的是哪个两个文件之间的差异呢?

  • git diff :查看当前工作区(workspace) 和暂存区(index) 的差异;
  • git diff --cached :查看暂存区(index) 和本地仓库(local repositorty) 的差别
  • git diff HEAD :查看当前工作区(workspace) 和本地仓库(local repository) 的差别, HEAD 指向的是本地仓库( local repository ) 中最新提交的版本。

HEAD -> 表示上一次的 commit 版本
HEAD~n -> 表示第上 n 次的 commit 版本,这里的 n 是大于等于 1 的整数

了解了基本概念之后,我们来谈一谈犯错误之后如何撤销的问题。首先,我们要了解如何检查这 3 个步骤当中每一个步骤修改了什么,然后才好判断有没有修改成功。检查修改的二级命令都相同,都是 git diff ,只是参数有所不同。

已修改,未暂存

git diff

首先,对文件进行了修改,但是还没有做 git add . 之前,我们如何检查有哪些修改:


这里可以看出在原文件中添加了 修改文件 四个字。

已暂存,未提交(执行了 git add 操作)

git diff --cached

现在我们先把修改放入暂存区。执行 git add . ,然后执行 git diff ,发现没有任何结果。这说明 git diff 这个命令只检查我们的 工作区和暂存区 之间的差异,如果我们想看到 暂存区和本地仓库 之间的差异,就需要加一个参数 git diff --cached

已提交,未推送

git diff master origin/master

现在,我们把修改从 暂存区提交到本地仓库 ,再看一下差异。先执行 git commit ,然后再执行 git diff --cached ,没有差异,执行 git diff master origin/master ,可以看到差异。
在这里, master 就是你的本地仓库 ,而 origin/master 就是你的远程仓库 , master 是主分支,因为我们都在主分支上工作,所以这里两边都是 master ,而 origin 就代表远程。

比较多次代码之间的差异

# 比较上一次和本次代码之间的差异
git diff HEAD~1 HEAD

# 比较前第三次与本次代码之间的差异
git diff HEAD~3 HEAD

# 前第 n 次代码
HEAD~n

git diffgit diff HEAD -- file 区别

  • HEAD:指向的是版本库中的最新版本;
  • file:指的是当前工作区中的指定文件
// 本地仓库也就是版本库
// 以下命令查看当前工作区和本地仓库里面最新版本的区别
git diff HEAD -- file

SHA

关于 SHA,其实就是每次执行 git cimmit 之后生成的 cimmitId。使用 git log 命令可以看到每次提交的 SHA。要比较两次提交之间的差异,可以直接执行:

git diff SHA1 SHA2
# 其中 SHA1 和 SHA2 是两次提交(commit)的标识

提交更新

git commit -m "说明"


执行 git commit 命令后,可以看到,提交后 git 会告诉你当前在哪个分支(master) 提交的,本次提交的完整 SHA-1 校验和是多少(463dc4f),以及在本次提交中,有多少文件修改过,多少行添加和删改过。

跳过使用暂存区域

#给 git commit 加上-a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。
git commit -am "说明"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文