2017-03-03 54 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的評論 –