我有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
分支而没有其他内容,就好像没有检索到任何更改一样。出了什么问题?
答案 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
以查看其他选项。