2015-08-03 75 views
2

我試圖運行下面的命令:奇怪的混帳分支名

git branch --set-upstream-to=staging 

,並沒有什麼我預期的結果。不是設置上游分支,而是創建了一個名爲--set-upstream-to=staging的新分支,問題是我無法刪除它。

有沒有什麼辦法讓

git branch -d --set-upstream-to=staging 

命令成功運行?

我得到的,當我嘗試運行上述命令的錯誤是: 錯誤:未知開關'S'

enter image description here

我可以證實分支的存在,當我運行git branch

  • ft-cell_formatting master staging --set-upstream-to = staging -set-upstream-to = stagi NG

回答

1

blue112的答案應該工作得很好。但是,如果你發現,沒有其他的工作,你可以去管道。看看.git/refs/heads文件夾。它應該看起來像這樣:

$ ls .git/refs/heads 
master 
other-branch 
--set-upstream-to=staging 

刪除文件.git/refs/heads/--set-upstream-to=staging。然後分支不見了。如果你已經提交了,他們現在是dangling,所以你需要手動恢復它們。如果沒有,你現在就完成了。

+0

這就是我一直在尋找的東西。謝謝 – ppoliani

2

通常情況下,當你有奇怪的文件名/ BRANCHNAME/anythingname,你可以在命令行中沒有嘗試使用解析:

git branch -d -- --set-upstream-to=staging 

的 「 - 」 在這裏告知getopt的(在解析選項的模塊)停止解析選項並開始解析參數。


順便說一句,有沒有辦法讓我創建一個分支開始破折號。我不確定你是如何做到的。

+0

感謝您的快速回答。但是,它不會讓我刪除它。 'error:branch'-set-upstream-to = staging'not found.' – ppoliani

+0

你確定它確實存在嗎?你可以編輯你的問題來包含'git branch'輸出嗎? – blue112

+0

@ppoliani在你的評價中你只使用了一個'-'。也許這是問題? – Dodekeract

-1

如果您在您的本地系統,並想初始化的分支將其推到遠程的Git庫中,您可以:

cd git_working_directory git branch --set-upstream your_branch origin/your_branch git push

後執行的命令當地分行將被推到遠程倉庫和使一個新的分支