【问题标题】:Suddenly can't create local/remote git branches突然无法创建本地/远程git分支
【发布时间】:2011-06-29 14:06:37
【问题描述】:

不确定我是如何管理这个的,但我不能再创建本地和远程分支了。

~/myapp(master) > git checkout -b new_feature origin/new_feature
fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'origin/new_feature' which can not be resolved as commit?

我尝试重新克隆我的应用程序以防 .git 目录损坏,但没有运气。有什么建议吗?

【问题讨论】:

  • 您需要小心“远程分支”一词。它通常表示您自己的存储库中的 ref,它指的是远程存储库中分支的最近获取的位置。听起来您正试图在远程存储库中实际创建一个分支;如果那里尚不存在,则必须按照答案中的说明通过推送来创建它。
  • Jefromi,谢谢,但我对您所说的远程分支“通常意味着您自己的存储库中的引用”感到困惑。我自己的存储库中的分支不是本地分支吗?无论如何,你是对的 - 解决方案是首先创建一个远程分支。

标签: git shell unix


【解决方案1】:

这种方式不能创建远程分支,需要先git checkout -b new_feature创建新的本地分支,然后git push origin new_feature将分支推送到远程。

【讨论】:

  • 感谢安德鲁,当机立断!我错误地认为远程分支也是自动创建的。该命令以前有效,但事后看来远程分支一定已经存在。
【解决方案2】:

尝试以下方法之一:

  • 创建本地分支:git branch some_branch

  • 使用(结帐)该分支(这不是自动的):git checkout some_branch

  • 创建远程分支:git push origin origin:refs/heads/some_branch

  • 要检出(并跟踪)远程分支(如果尚不存在则创建 local_branch):git branch --track local_branch origin/remote_branch

【讨论】:

  • 前两个可以一起做git checkout -b some_branch
  • 谢谢西蒙。这些命令看起来很有用,尤其是最后一个。
猜你喜欢
  • 2015-03-30
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
  • 2021-08-17
  • 2015-10-19
  • 1970-01-01
  • 2016-02-06
  • 2016-10-06
相关资源
最近更新 更多