无法看到使用git diff进行提交的更改

我想要的是查看针对本地回购的变更。

当我做git身份时,我得到:

On branch develop  
Your branch is ahead of 'origin/develop' by 6 commits.  
  (use "git push" to publish your local commits)  
  nothing to commit, working directory clean  

正如我如何显示已经上演的更改所讨论的?

一(2)个git diff应该可以工作。 不幸的是,在我的情况下,他们都没有返回。

git diff //empty - which seems to be fine 
git diff --cached //empty 
git diff HEAD //empty

我错过了什么吗?


您已经完成了您的更改。

差异将显示您的索引和存储库之间的区别。

如果您想查看本地存储库到远程存储库的更改,请执行以下操作:

git fetch --all --prune
git log ^master origin/master

// or:
git log master ^origin/master

两行之间的区别在于一个会显示拉差,而另一个会显示推差。


你已经尝试了三种形式的git diff :没有选项, - --cached ,并指定一个修订(在这种情况下, HEAD )。 您链接到的问题的第二个答案显示了这三种形式的git diff做的很好的图形总结。 这些都不是你想要的。

但是,还有更多的表格!

您可以要求git diff比较两个特定的提交(修订版),例如:

git diff HEAD@{upstream} HEAD

要么:

git diff origin/develop develop

根据你所引用的git status输出,这些将会做同样的事情,因为HEAD目前与develop相同(你在git status输出中“正在分支开发”), HEAD@{upstream}将解析为origin/develop (“在'起源/发展'提前6次提交”)。 (请注意,在某些shell /命令行解释器中,您可能必须引用一个或两个大括号。)

你也可以使用:

git diff HEAD@{upstream}..HEAD

这个表示法与字面上的双点..通常意味着别的:请参阅gitrevisions文档以获取详细信息。 然而,在使用git diff时,前端命令只是将这个解析转换为两个指定的提交,然后使用这两个提交。


你会得到更多 - 更典型的是你可能想要的,我认为 - 与:

git log -p HEAD@{upstream}..HEAD

因为这将分别显示每个提交以及这些提交所做的更改。 Git通过比较每个提交与其父提交来发现这些更改。 (这也是git如何确定哪些提交是那六个,这是在图形理论形式中,在“指定范围”一节中描述的。)实际上, git log -p查看每个要显示的提交,然后在该提交的父代和该提交之间做一个git diff

对于合并提交, git log -p的输出(以及git show的输出,就像git log -p但只显示特定的提交或其他对象,您要求它显示,而不是像提交历史记录一样git log )被修改:git默认显示一个“组合差异”,它试图强调合并过程中发生的事情,而不是两个分支发生的事情。 现在你不需要知道多少,只要记住当记录或显示合并时,git隐藏不需要的复杂性(这很好,直到你想要它,然后搜索StackOverflow :-))。

如果你省略-pgit log就会显示提交消息。 查看(很多)更多选项的git log文档。


正如上面提到的代码向导,所有这些命令都使用git的“远程位置在哪里”的想法,基于上一次git调用远程并获取最新信息。 此信息可能已过时,甚至可能持续几秒钟,甚至几分钟或(喘气)小时。 :-)为了让当地的git上最新与遥控器,你必须运行git fetch (额外的标志, --all--prune ,并不总是需要的,尽管它们可能取决于谁,你是个好主意'分享和如何)。 按照您的喜好经常或罕见地运行git fetch ; 记住,你可能会过几秒钟或几个月,git也不会在意:你想更新的频率是由你决定的。


这可能来得太晚。 但是,如果你使用OS X,并且你的git core.pager或LESS环境变量有-F选项。 有时候, git diff什么都不显示。

git程序非常稳定,不太可能会遇到git错误,这似乎是OS X上的/usr/bin/less错误。)

链接地址: http://www.djcxy.com/p/50883.html

上一篇: Cannot see changes staged for commit using git diff

下一篇: Warn when doing git commit