尽管第一个选择的答案在技术上是正确的,但有可能您尚未从远程存储库中检索所有对象和引用。如果是这种情况,您将收到以下错误:
$ git checkout -b remote_branch origin/remote_branch
致命:git checkout:更新路径与切换分支不兼容。
您是否打算签出无法解决为提交的“ origin / remote_branch”?
解
如果您收到此消息,您必须首先做一个git fetch origin
地方origin
是远程仓库之前运行的名称git checkout remote_branch
。这是带有响应的完整示例:
$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
e6ef1e0..5029161 develop -> origin/develop
* [new branch] demo -> origin/demo
d80f8d7..359eab0 master -> origin/master
$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'
如您所见,运行git fetch origin
检索到我们尚未设置为在本地计算机上进行跟踪的所有远程分支。从那里开始,由于我们现在有一个到远程分支的引用,因此我们可以简单地运行,git checkout remote_branch
并且可以获得远程跟踪的好处。