如何查看尚未推送的已提交文件?

时间:2010-10-19 10:08:40

标签: git github

例如我提交了一些文件,第二天提交了一些文件,依此类推。几天后,我想查看我提交的所有文件,并查看它们与远程仓库的区别。请注意,我没有推动任何东西。我只是想验证一下,如果我推送一些东西,那么它会像我期望的那样进入远程仓库。

6 个答案:

答案 0 :(得分:41)

假设您在跟踪master的本地分支origin/master上:

git diff --stat origin/master..

答案 1 :(得分:21)

在这里,你会找到答案:

Using Git how do I find changes between local and remote

懒惰:

  
      
  1. 使用“git log origin..HEAD”
  2.   
  3. 使用“git fetch”后跟“git log HEAD..origin”。您可以使用列出的提交ID来挑选单个提交。
  4.         

    当然,上面假设“origin”是您的远程跟踪分支的名称(如果您使用带有默认选项的clone,那就是它。)

答案 2 :(得分:7)

push命令有一个-n / --dry-run选项,可以计算需要推送的内容,但不会实际执行此操作。这对你有用吗?

答案 3 :(得分:5)

git diff HEAD origin/master

其中origin是远程存储库,master是您要推送的默认分支。另外,在git fetch之前做一个diff,这样你就不会对陈旧的原点/主人进行分析。

P.S。我也是git的新手,所以万一以上是错误的,请纠正。

答案 4 :(得分:5)

我对Git不太满意,但这就是我的所作所为。这不一定与远程仓库进行比较,但您可以使用远程的适当提交哈希修改git diff

说你做了一个你还没推过的提交......

首先找到最后两次提交......

git log -2

这首先显示了最后一次提交,并从那里开始......

[jason:~/git/my_project] git log -2
commit ea7937edc8b10
Author: xyz
Date:   Wed Jul 27 14:06:41 2016 -0500

    Made a change in July

commit 52f9bf7956f0
Author: xyz
Date:   Tue Jun 14 14:29:52 2016 -0500

    Made a change in June

现在只需使用两个提交哈希(我缩写)来运行diff:

git diff 52f9bf7956f0 ea7937edc8b10

答案 5 :(得分:0)

前面的回答都很好,但是都显示了origin/master。这些天,遵循最佳实践,我很少直接在 master 分支上工作,更不用说从 origin 仓库了。

所以如果你像我一样在分行工作,这里有一些提示:

  1. 假设您已经在一个分支上。如果没有,git checkout 那个分支
  2. git log # 显示提交列表,例如 x08d46ffb1369e603c46ae96,您只需要最先出现的最新提交。
  3. git show --name-only x08d46ffb1369e603c46ae96 # 显示提交的文件
  4. git show x08d46ffb1369e603c46ae96 # 显示每个更改文件的详细差异

或者更简单地说,只需使用 HEAD:

  1. git show --name-only HEAD # 显示提交的文件列表
  2. git show HEAD # 显示细节差异。