114

我想知道我的本地存储库是否是最新的(如果不是,理想情况下,我希望看到更改)。

我怎么能不做git fetchor来检查这个git pull

4

12 回答 12

119

尝试git fetch --dry-run 手册 ( git help fetch) 说:

--dry-run
Show what would be done, without making any changes.
于 2011-10-29T13:29:45.350 回答
54

首先使用git remote update, 更新您的远程参考。然后你可以做几件事之一,例如:

  1. git status -uno将告诉您您正在跟踪的分支是领先、落后还是已经发散。如果它什么也没说,本地和远程是一样的。样本结果:

在分支 DEV

您的分支在 7 次提交之后位于“origin/DEV”之后,并且可以快进。

(使用“git pull”来更新你的本地分支)

  1. git show-branch *master将向您显示名称以“master”结尾的所有分支中的提交(例如 master 和 origin/master)。

如果你使用-vgit remote update ( git remote -v update) 你可以看到哪些分支被更新了,所以你真的不需要任何进一步的命令。

于 2018-09-13T06:13:12.127 回答
51
git remote show origin

结果:

HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (local out of date) <-------
于 2017-03-30T10:35:13.600 回答
20

您可以使用它git status -uno来检查您的本地分支是否与原始分支保持同步。

于 2014-03-24T15:01:50.183 回答
12

不是真的 - 但我看不出git fetch会有什么伤害,因为它不会改变你当地的任何分支机构。

于 2011-10-29T11:55:15.303 回答
8

您需要发出两个命令:

  1. git 获取原点
  2. 状态
于 2015-07-27T18:01:33.893 回答
6

您必须先运行git fetch,然后才能将本地存储库与远程服务器上的文件进行比较。

git merge此命令仅更新您的远程跟踪分支,在您调用或之前不会影响您的工作树git pull

要查看获取后的本地分支和远程跟踪分支之间的差异,可以使用git diff 或 git cherry,如此处所述。

于 2011-10-29T19:23:47.003 回答
6

另一种选择是查看远程分支的状态,将 git show-branch remote/branch其用作比较,您可以看到git show-branch *branch所有远程分支以及您的存储库中的分支!查看此答案以获取更多信息https://stackoverflow.com/a/3278427/2711378

于 2014-11-11T08:54:01.180 回答
3

如果你使用

git fetch --dry-run -v <link/to/remote/git/repo>

您将获得有关它是否是最新的反馈。所以基本上,您只需要在之前给出的答案中添加“详细”选项即可。

于 2019-10-28T17:20:23.130 回答
3
git fetch origin
git status

你会看到类似的结果

您的分支落后于 'origin/master' 9 次提交

更新到远程更改

git pull
 
于 2020-05-28T12:02:02.937 回答
1

git fetch如果不使用or ,这是不可能的git pull。如果不去远程存储库查看“最新”甚至意味着什么,您如何知道存储库是否“最新”?

于 2011-10-29T11:54:55.790 回答
1
git remote show origin


Enter passphrase for key ....ssh/id_rsa:
* remote origin
  Fetch URL: git@github.com:mamaque/systems.git
  Push  URL: git@github.com:mamaque/systems.git 

  HEAD branch: main
  Remote branch:
    main tracked
   Local ref configured for 'git push':

main pushes to main (up-to-date) 两者都是最新的
main pushes to main (fast-forwardable) 远程可以用本地更新
main pushes to main (local out of date) 本地可以用远程更新

于 2021-01-13T21:23:14.530 回答