2011-04-14 25 views
0

當我運行Git的複式LS-遠程

 
$ git 
ls-remote 
[email protected]:bar.git 

我得到

 
6826f9697d4b887a0eaa1aaf9338dee23569970a HEAD 
90ff949b16803724913bb85a72e57c4e5d4c4625 refs/head/master 
6826f9697d4b887a0eaa1aaf9338dee23569970a refs/heads/master 

它看起來像裁判/頭/主不應該存在,它正在搞亂我的部署與capistrano,因爲它正在檢查它找到的第一個主。我如何檢查它包含的內容並將其刪除?

+0

這很奇怪,卡皮斯特拉諾甚至看到'refs/head/master'。任何理智的方法只能找到'refs/heads/master'。 – Cascabel 2011-04-15 01:28:10

回答

3

是的,refs/head/master不應該在那裏。看起來有人不小心推到了refs/head/master,當時他們打算推到refs/heads/master

你可以拉你搞砸了主人的內容的東西,如:

git fetch [email protected]:bar.git refs/head/master:broken-master 

這會給你一個地方分支,broken-master,它包含哪些服務器上的不正確裁判包含。一旦您令人滿意地合併了任何可能已停滯不前的內容,並準備在服務器上將其刪除,則可以執行以下操作刪除服務器上已損壞的分支。

git push [email protected]:bar.git :refs/head/master 

根據服務器設置,您可能需要使用-f標誌強制服務器刪除該分支。

您可能還希望使用git branch -d broken-master來清理臨時本地分支,只要您將所有內容合併或決定丟棄即可。