Git 没有获取上游数据?

Git isn't fetching upstream data?

我有 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 时,它会暂停一秒钟,然后什么也没有发生。

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

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

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

git branch -avv

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

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

只有 upstream/master 的合并才会这样做。因为 git pull = git fetch + git merge,做一个 git pull 可能更方便。

git fetch 只获取提交,它不合并,不更新你的引用(不是远程引用)。

查看 git branch -a 是否有名为 remotes/upstream/* 的分支。

您还可以通过 git checkout FETCH_HEAD.

获取刚刚获取的内容

如果您希望本地 master 反映 upstreammaster,您需要 git checkout master && git pull upstream master。如果 master 的历史没有分歧(即您在另一个分支中有本地工作),则此方法有效。它首先获取,然后将 FETCH_HEAD 合并到您的本地 master,让您看到新的提交。

如果你想从upstream得到一个分支,同时创建一个本地引用:git fetch upstream master:upstream_master.

git branch 默认显示本地分支

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

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