我对Git还很陌生,可能我在这里漏掉了什么。
dan@one:/var/www/$ git status -s
M GoogleChromeExtension.js
M ApiClient.js
显然有两个文件被改变了。
但是当我运行:
git diff
没有输出显示。我原本期望能够看到我的工作副本和最新提交之间的更改。
我很确定昨天一切都按照预期工作......
这可能是因为我还没有将更改推送到远程服务器吗?
P.S.:我正在使用GitHub
谢谢,
丹
我对Git还很陌生,可能我在这里漏掉了什么。
dan@one:/var/www/$ git status -s
M GoogleChromeExtension.js
M ApiClient.js
显然有两个文件被改变了。
但是当我运行:
git diff
没有输出显示。我原本期望能够看到我的工作副本和最新提交之间的更改。
我很确定昨天一切都按照预期工作......
这可能是因为我还没有将更改推送到远程服务器吗?
P.S.:我正在使用GitHub
谢谢,
丹
执行git diff --cached
命令-它比较HEAD和索引(即为提交添加的内容)。
git diff
命令只在索引和工作目录之间进行比较,因此如果所有更改都已准备好提交,您将在git diff
中看不到任何内容。
第三种形式是git diff <commit>
命令,它比较工作目录和提交。因此,执行git diff HEAD
命令也会给您所需的差异。
git status
并不完全必要,但是如果您知道该看哪里,git status -s
也可以非常信息丰富。 - manojldsgit status -s
主要是为机器消费而设计的;计算机通常比我们更擅长注意 M 在哪一列。(而我们更擅长阅读颜色。) - Cascabelgit diff
和 git diff --cached
都没有显示任何更改,但一个文件被列为未暂存的更改。在仔细检查了没有更改后,我执行了 git checkout <filename>
命令来消除这个虚假的更改。 - Nobody moving away from SEgit --no-pager diff filepath/filename.extn
git diff HEAD
命令,将工作目录与上次提交进行比较。如果您已经使用了git add
命令添加了更改,则默认的git diff操作将不显示这些差异。请参阅http://git-scm.com/docs/git-diff man页面上的描述。而git status
输出(没有-s选项)将有助于大家了解是否是这种情况。请确保您不在另一个git仓库中。 如果以上命令无法正常运行,请尝试运行以下命令:
git show HEAD
git diff不能显示最后两个提交之间的差异。 git diff会显示最后一次提交和您对代码所做的更改之间的差异。