在跳轉回答之前,請仔細閱讀此混亂!「git push --mirror」刪除了遠程標籤。任何方式來恢復他們?
問題:
- 我工作的一個項目(使用Git版本控制)。
- 我創建標籤版本2.x和它推到我的遠程起源。
- 這個遠程原點是一個私有鏡像,在1.x系列中沒有標籤。 原因 - 我們開始在v2.x中從頭開始編碼,所以1.x只保留歷史原因。
- 不知道這一點,我添加了另一個遠程我們的公共github回購。
- 我想可以讓鏡最新的標籤,並承諾github上 -
我用(因爲我是唯一的開發者,我沒有刻意去合併!):
git push --mirror
,並刪除所有標籤在Github的1.x系列中!
現狀:
- 我GOOGLE了很多,讀git的手冊。試過運行git reflog/reset/rebase但不能恢復任何東西。
- 我的地方環境。沒有標籤的1.x,因爲我們從頭2.X
- 啓動,即使我失敗了到目前爲止恢復任何已犯下有關,我看到遠程提交Github上。例如 https://github.com/rtCamp/buddypress-media/commit/4614fcdacfbe21dae88e50e66707ef57b786ee37
這意味着數據存在於遠程...
什麼可能的工作:
如果我能與所有的日誌克隆GitHub庫,包括已刪除的日誌「提交「在本地,那麼我的」本地「也將刪除提交。之後,它可能是git reflog/rebase/reset練習。
我假設,因爲遠程git是一個完整的回購本身和它的showing commits by SHA1 hashes,如果我可以在「遠程」上運行git reflog/rebase/reset,可能在理論上起作用。
請注意,我正在尋找純粹的git方式。手動我們也可以下載「標籤」(拉鍊),從SVN恢復(我們的1.x中使用SVN)
請讓我知道你的意見/解決方法。
我已經檢查過。它假定__「...從服務器上刪除的引用在推送後仍然在本地的遠程。」__在我的情況下不是這樣 – rahul286