使用git pull更新分支

12
git version 1.7.3.5
我有以下分支:
git branch
  image
  master
* video

我在办公室做了一些工作。当我回家后,我总是在家里的笔记本电脑上更新。

然而,当我执行 git remote show origin 命令时,会得到以下信息:

  Local refs configured for 'git push':
    image   pushes to image  (up to date)
    master  pushes to master (fast-forwardable)
    video   pushes to video  (local out of date)

我对所有这些分支进行了git pull:

git pull origin image
git pull origin master
git pull origin video

当我在视频和图像分支上执行 git status 命令时,我得到以下输出:

 nothing to commit (working directory clean)

当我在主分支上执行git status时,我会得到以下结果:

Your branch is ahead of 'origin/master' by 5 commits.

我不明白以下内容的含义 (fast-forwardable)(local out of date)

但是在video的git状态中,它显示为最新的(up to date)?

如果我的master分支领先5个提交,我需要推送吗?

非常感谢任何建议。


2
运行 git log --stat --pretty=format:'%Cred%h%Creset - %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative origin/master..master 命令可以让你了解差异。 (fast-forwardable) 表示可以安全地推送:分支除了一个分支(在你的情况下是 local)有一些额外的提交之外,其他分支都有相同的提交。 - jfs
1个回答

21

git remote show origin 命令比较你的本地仓库和远程仓库:

  • fast-forwardable 意味着你可以将本地更改推送到远程分支。
  • local out of date 意味着你的本地分支落后于远程分支,应该从远程分支拉取。

git status 命令比较你的本地工作目录和当前分支(即HEAD)的当前提交。此外,它还会将你的本地分支与(本地!)跟踪远程分支的副本(origin/master)进行比较,因此出现了 Your branch is ahead of 'origin/master' by 5 commits.

为了解决 git status (仅显示本地数据)和 git remote show origin (显示“实时”远程数据)之间的差异,你应该运行 git remote update origin 命令来更新本地跟踪分支。它将把你的本地 origin/master 更新为远程的 master 状态。之后,git status 应该会给你类似于 Your branch is behind 'origin/master' by X commits, and can be fast-forwarded. 的结果。


如果我得到了 Your branch is behind 'origin/master' by X commits, and can be fast-forwarded. 这个提示,那么该怎么办呢?提前感谢您的帮助。 - MikeSchinkel
4
使用命令 git pull origin master 来更新本地的 master 分支。 - Koraktor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接