Git没有获取上游数据?

时间:2015-03-30 10:54:32

标签: git github

我有Git设置可以访问两个 github 存储库:我没有协作者(写)访问权限的上游远程数据库,以及我创建的那些我已经写过的数据库进入。以下是我运行git remote -v时的结果。

origin  https://github.com/samholmes1337/secret-society (fetch)
origin  https://github.com/samholmes1337/secret-society (push)
upstream    https://github.com/asm-products/secret-society.git (fetch)
upstream    https://github.com/asm-products/secret-society.git (push)

但是,当我尝试运行git fetch upstream以便检索最新的更改并have them stored in a new branch called upstream/master时,它会暂停一秒钟然后没有任何反应。

empty output of 'git remote -v'

当我检查我的分支以查看是否已提取任何内容时,我只看到master分支而没有其他内容,就好像没有检索到任何更改一样。出了什么问题?

3 个答案:

答案 0 :(得分:3)

这应该意味着远程跟踪上游分支已经是最新的。

您可以通过以下方式检查:

git branch -avv

这将显示所有分支,包括远程跟踪分支及其关联的SHA1。

正如评论中所提到的,即使远程跟踪分支不是最新的并且实际上正在获取新的提交,也不会在工作树中放置任何内容。

只有upstream/master的合并才会这样做。由于git pull = git fetch + git merge,执行git pull可能会更方便。

答案 1 :(得分:2)

git fetch仅提取提交,不进行合并,不更新引用(不是远程引用)。

如果您有名为git branch -a的分支,请参阅remotes/upstream/*

您还可以使用git checkout FETCH_HEAD获取刚刚获取的内容。

如果您希望本地master反映upstream的{​​{1}},则需要master。如果git checkout master && git pull upstream master的历史记录没有分歧(即您在另一个分支中有本地工作),则此方法有效。它首先获取,然后将master合并到您的本地主服务器,允许您查看新提交。

如果您想从FETCH_HEAD获取分支并同时创建本地参考:upstream

答案 2 :(得分:1)

git branch默认显示本地分支

您需要添加-a---all以列出远程跟踪和本地分支。

我建议您查看git branch -h以查看其他选项。