当我在我的工作区运行命令'git status'时,我收到以下消息:
# On branch master
# Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
现在,如果我运行命令'git pull',工作区将使用origin / master上的文件进行更新。该命令还在屏幕上显示正在拉入的文件以更新我的工作区。
有没有办法在没有实际运行'git pull'命令的情况下确定此文件列表?
答案 0 :(得分:4)
git diff --stat master origin/master
可以解决问题。
如果将origin / master设置为master的上游分支,您也可以将其缩短为git diff --stat HEAD @{u}
。
答案 1 :(得分:3)
您可以对远程分支使用--stat
的{{1}}标记。
git diff
这将显示已更改的文件列表以及删除/添加的行数。这也不会以任何方式更新您当前分支的参考。
答案 2 :(得分:1)
要查看已向上游主机添加了哪些提交,请使用git log
作为过滤器运行origin/master
。将显示提交。
git fetch
git log --oneline master..origin/master
示例输出:
2d8ad7d 修复了一大堆东西
c1ee8ec 更新了一些值
然后使用commit id
查看提交的文件。
git diff --no-commit-id --name-only -r
的2d8ad7d
强>
或强>
git diff --stat -r
2d8ad7d
注意:此示例和您的解决方案正在跟踪远程分支origin/master
。如果要跟踪其他分支,请在上面的命令中替换该分支名称。
答案 3 :(得分:0)
您可以使用此命令
git diff HEAD origin/your/feature/branch
鉴于您已在本地签出功能分支,并看到此消息Your branch is behind 'origin/your/feature/branch' by 1 commit, and can be fast-forwarded.
这显示了您的本地状态和远程功能分支之间的区别。
答案 4 :(得分:-1)
尝试git fetch和git reflog。 http://git-scm.com/docs/git-reflog