我意外地拉下了一个与当地分支同名的分支
* 909a2b5 - (HEAD, feature/form) xxxx <imrane>
* c9d6bc5 - xxxx <imrane>
| * 6e96409 - (origin/feature) xxx <anandmv>
|/
* 38e35d8 - (origin/develop, origin/HEAD, develop) xxx <imrane>
我已将所有更改提交到我的本地分支,然后运行
git fetch origin
然后尝试跟踪远程分支并出现以下错误
git checkout --track origin/feature
error: there are still refs under 'refs/heads/feature'
fatal: Failed to lock ref for update: Is a directory
问题:
1.如何在不丢失功能/形式的提交的情况下恢复
2.如何在没有命名冲突的情况下拉下分支?
答案 0 :(得分:7)
你有点误解了你的情况:
feature/form
的本地分支,该远程分支名为feature
。现在这可能会让人感到惊讶,但这些名字相互冲突。 feature/form
实际上创建了一个名为“feature”的文件夹,其中包含一个名为“form”的分支。因此,您无法创建名为“feature”的分支,作为具有该名称的文件夹已经存在。git checkout --track origin/feature
尝试创建名为“feature”的分支,这是不可能的,因此失败。feature
分支上工作而不删除或重命名您的本地feature/form
分支 - 即使我不建议这样做,因为它很容易在那里混淆。< / LI>
运行此命令:
git checkout -b mylocalname --track origin/feature
将生成一个名为mylocalname
的本地分支,用于跟踪远程feature
上的远程分支origin
。