git fetch在控制台上没有显示任何内容

时间:2013-07-02 06:24:50

标签: git

我们正在使用这个使用git的模型: http://nvie.com/posts/a-successful-git-branching-model/

我正在尝试学习在特定合并上使用git fetch和git merge而不仅仅是拉动。对于我的问题,我所做的是对分支进行了更改并将这些更改推送到分支。我在github上看到了这些变化。然后我切换到master来获取这些更改。所以我

git checkout master
git fetch  // terminal shows nothing
git fetch origin  // terminal shows nothing

我是否正确使用命令获取?我在控制台上看不到任何东西。但是当我使用像SourceTree这样的工具时,我会获取它,它会更新它们的树,我可以看到这些变化。

假设我接下来要开始工作,并且我看到进行了不同的更改,我是否只做git merge <hash of the last commit or commit I want to merge in>?谢谢!

3 个答案:

答案 0 :(得分:12)

git fetchgit fetch origin没问题,但如果无事可做,则不会显示任何内容。

您可以使用git fetch -v更详细并显示更多信息

答案 1 :(得分:5)

关于最后一部分,如“Fun with FETCH_HEAD”中所述,您可以这样做:

$ git fetch git://repo.or.cz/stranger.git for-junio
$ git log -p ..FETCH_HEAD
$ git merge FETCH_HEAD
  

因为“pull”是“fetch + merge”,我们将操作明确地分解为两个步骤。

     

fetch”将信息保存在 FETCH_HEAD 的另一侧找到的分支上,您可以使用它来命名位于提示的提交对象分支。
  “git log -p ..FETCH_HEAD”(注意双点)让你可以查看他所拥有的提交,但不会在你的分支中查看补丁形式的变化,以检查他所做的事情是否合理。
  如果您满意,可以使用FETCH_HEAD将提交合并到您的分支

(例如参见this answer

详见“How Do I 'git fetch' and 'git merge' from a Remote Tracking Branch (like 'git pull')”,如果您定义了 upstream branch ,则无需使用FETCH_HEAD:

git fetch origin
git merge origin/an-other-branch
  

git fetch origin an-other-branch将提取的提示存储在FETCH_HEAD中,但不存储origin/an-other-branch(即通常的“远程跟踪分支”)。
  所以,可以做git fetch origin an-other-branch && git merge FETCH_HEAD

对于第一部分,请确保your branch has an upstream branch set到远程上游仓库。

答案 2 :(得分:0)

我发现这是因为我遇到类似的问题。我不知道为什么,但就我而言,我需要明确命名已更新的分支:

$ git fetch [origin] [branch]

让我解释一下-我将git用于小型脚本。我从master开始回购。在将脚本部署到生产环境中之后,我仍然想对其进行处理,我将创建一个dev分支。但是大多数项目只有一个分支,或者一旦合并我就不会保留dev

今天,我对远程主服务器进行了一些小的更改,并希望使用这些更改来更新本地系统。出于习惯,我刚做$ git fetch。没啥事儿。然后我找到了你的帖子。首先,我添加了项目名称(来源)并执行了$ git fetch [origin]。这将开发人员和管理员都更新到了他们在一月份共享共享的最后一次。那哦!我运行了$ git fetch [origin] master,现在下载了更改。