例如我提交了一些文件,第二天提交了一些文件,依此类推。几天后,我想查看我提交的所有文件,并查看它们与远程仓库的区别。请注意,我没有推动任何东西。我只是想验证一下,如果我推送一些东西,那么它会像我期望的那样进入远程仓库。
答案 0 :(得分:41)
假设您在跟踪master
的本地分支origin/master
上:
git diff --stat origin/master..
答案 1 :(得分:21)
在这里,你会找到答案:
Using Git how do I find changes between local and remote
懒惰:
- 使用“git log origin..HEAD”
- 使用“git fetch”后跟“git log HEAD..origin”。您可以使用列出的提交ID来挑选单个提交。
醇>当然,上面假设“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 仓库了。
所以如果你像我一样在分行工作,这里有一些提示:
或者更简单地说,只需使用 HEAD: