Git:如何检查本地回购是否是最新的?

时间:2011-10-29 11:53:02

标签: git git-pull git-fetch

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

如何在不git fetchgit pull

的情况下检查此问题

12 个答案:

答案 0 :(得分:58)

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

--dry-run
Show what would be done, without making any changes.

答案 1 :(得分:8)

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

答案 2 :(得分:8)

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) <-------

答案 3 :(得分:5)

不是 - 但我不知道git fetch会如何受到伤害,因为它不会改变你当地的任何一个分支。

答案 4 :(得分:3)

您需要发出两个命令:

  1. git fetch origin
  2. git status

答案 5 :(得分:2)

这是不可能的。如何在不进入远程存储库的情况下知道存储库是否为“最新”,以查看“最新”甚至意味着什么?

答案 6 :(得分:2)

在将本地存储库与远程服务器上的文件进行比较之前,必须运行git fetch

此命令仅更新您的远程跟踪分支,在您致电git mergegit pull之前不会影响您的工作树。

要查看本地分支与远程跟踪分支之间的区别,您可以使用git diff or git cherry as explained here.

答案 7 :(得分:2)

另一种方法是使用查看远程分支的状态 git show-branch remote/branch使用它作为比较,您可以看到git show-branch *branch以查看所有遥控器以及您的存储库中的分支!查看此答案以获取更多https://stackoverflow.com/a/3278427/2711378

答案 8 :(得分:1)

试图格式化我的答案,但不能。请stackoverflow团队,为什么发布答案如此困难。

一无是处

answer:
git fetch origin
git status(您会看到类似“您的分支落后9个提交而位于'origin / master'之后的结果”)
更新为远程更改:git pull

答案 9 :(得分: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) 本地可以通过远程更新

答案 10 :(得分:0)

首先使用git remote update,以使您的远程引用保持最新状态。然后,您可以做几件事之一,例如:

  1. git status -uno会告诉您是否要跟踪的分支 领先,落后或分歧。如果什么也没说,本地和 远程是一样的。
  2. git show-branch *master将向您显示所有 名称以“ master”结尾的分支(例如master和origin / master)。

如果将-v与git remote update(git远程-v update)一起使用,则可以查看更新了哪些分支,因此您实际上不需要任何其他命令。

答案 11 :(得分:0)

如果您使用

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

您将收到有关其是否最新的反馈。因此,基本上,您只需要在前面给出的答案中添加“详细”选项即可。