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

pbwdgjma  于 2023-06-28  发布在  Git
关注(0)|答案(7)|浏览(366)

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

dw1jzc5e

dw1jzc5e1#

假设你在本地分支master上,它正在跟踪origin/master

git diff --stat origin/master..
oxiaedzo

oxiaedzo2#

在这里你会找到你的答案:
如何使用Git查找本地和远程之间的更改
对于懒惰者:
1.使用“git log origin..HEAD”
1.使用“git fetch”,然后使用“git log HEAD..origin”。您可以使用列出的提交id来挑选单个提交。
当然,上面的假设是“origin”是远程跟踪分支的名称(如果您使用clone和默认选项的话)。

bkhjykvo

bkhjykvo3#

push命令有一个-n/--dry-run选项,它将计算需要推送的内容,但实际上并不执行。这样行吗

li9yvcax

li9yvcax4#

我不擅长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
wd2eg0qa

wd2eg0qa5#

git diff HEAD origin/master
其中,origin是远程存储库,master是您将推送的默认分支。另外,在diff之前执行git fetch,这样您就不会与过时的原始/主服务器发生差异。
P.S.我也是git的新手,所以如果上面的错误,请纠正。

kx1ctssn

kx1ctssn6#

前面的答案都很好,但都显示origin/master。这些天来,遵循最佳实践,我很少直接在主分支上工作,更不用说从源代码库了。
所以如果你和我一样在分支工作,这里有一些提示:
1.假设你已经在一个分支上了。如果没有,git checkout 那个分支

  1. git log #显示提交列表,例如x 08 d46 ffb 1369 e603 c46 ae 96,你只需要最新的提交。
  2. git show --name-only x 08 d46 ffb 1369 e603 c46 ae 96 #显示提交的文件
  3. git show x 08 d46 ffb 1369 e603 c46 ae 96 #显示每个更改文件的详细差异
    或者更简单地说,使用HEAD:
  4. git show --name-only HEAD #显示提交的文件列表
  5. git show HEAD #显示细节差异。
mqkwyuun

mqkwyuun7#

git diff @{u}..

这是当前提交到上游分支的差异。如果您只关心修改过的文件名,那么

git diff @{u}.. --name-only

相关问题