2017-03-03 53 views
2

我有一个分支叫ChartFeature但我不小心输入git checkout CHartFeature和PowerShell中/ poshgit结束了与此:未知的Git分支签出

C:\git\Charting [CHartFeature]> git status 
On branch CHartFeature 
nothing to commit, working tree clean 

这里发生了什么?如果我查看SourceTree,它不会显示分支,但是当我将文件提交给我从未创建的分支时,我可以(并且让自己陷入麻烦)。 (我从来没有输入git checkout -b CHartFeature但我需要将其合并到ChartFeature。)

如果我列出本地分支机构这种错误的分支不存在:

C:\git\Charting [CHartFeature]> git branch 
    ChartFeature 
    develop 
    master 

什么混帐做时,我不必键入git checkout CHartFeature创建了该分支?我在那里犯了什么事?

更重要的是,它是安全键入git branch -d CHartFeature?如果我这样做会发生什么?

+0

您使用的窗口? – LeGEC

+0

这看起来像是其他人在某个时间以前创建了这个分支,并且将它推向了偶然的位置。 – ckruczek

+0

如果您使用的是Windows,在文件名(通常)不区分大小写,您可以检出似乎分支无论如何组合,但你仍然在正确命名的分支。我刚刚检查了'MAster',提交了一个修改并检查了日志,它看起来没问题,然后我检查了'master',检查了日志并提交了我的提交。我认为'git的结帐X'只检查,如果有,可以与名裁判文件夹下打开的文件,并在Windows上存在,即使实际文件名是'x'。 –

回答

0

看来这个问题是由于在Windows的情况下敏感性。

尝试手动重命名./.git/refs/heads/CHartFeatureChartFeature。或在.git文件夹中提供的任何CHartFeature

+0

重命名分支的推荐方法是使用'git branch -m',而不是通过手动修改'.git'文件夹中的内容。 –

+1

@LasseV.Karlsen在理论上'git branch -m'不应该工作,因为一个不同名字的分支从未被创建过。 OP使用'git checkout'而不使用'-b'选项。 –

+0

手动重命名有点棘手,因为您应该重命名* reflog *文件('.git/logs/refs/heads/CHartFeature')。 @kopranb:如果只有一个(且只有一个)匹配的'origin/*'远程跟踪分支,则会自动假定'-b'。在这种情况下,有。 – torek

0

检查哪些分支机构在你的回购存在:

git branch 
git branch -r # view remote branches 

如果CHartFeature存在,但ChartFeature不,尝试重命名你的当前分支:

git branch -m ChartFeature 
+0

@MattW:以下分支:ChartFeature,CHartfeature,origin/ChartFeature,origin/CHartFeature,你看到哪些? – LeGEC

+0

查看关于OP的评论 –