2013-02-28 59 views
6

Bitbucket有一個導入器工具,用於從遠程位置導入存儲庫,但它僅支持git://協議。我們現有的存儲庫位於防火牆後面的公司控制的機器上,我無法更改,並且git://不可用。我需要將存儲庫從我們的公司機器移動到bitbucket,保持原始存儲庫中的所有歷史記錄和詳細信息不變。通過ssh導入兩步git

有沒有什麼辦法可以通過將原始存儲庫通過ssh克隆到本地機器,然後將該存儲庫推送到bitbucket上新創建的存儲庫?我會以這種方式失去任何歷史或數據嗎?

(我希望的是不到位桶特定的答案,但會爲在任何情況下「移動」一個Git倉庫工作。)

回答

8

你要確保你有整個歷史。您可以先執行完整的本地裸露克隆來完成此操作。

git clone --mirror git://LOCAL_URL/somerepo.git 

然後像Timothy指出的那樣添加遠程和推送。雖然,您可能想要使用遠程別名以外的其他東西。

git remote add bitbucket ssh://[email protected]/someuser/somerepo.git 
git push -u bitbucket --all 

這可以用於任何Git託管服務。只需用你想要的任何東西替換遠程URL即可。

5

據我所知克隆整個回購和推動它的工作原理。到位桶甚至對你的命令:

cd /path/to/my/repo 
git remote add origin ssh://[email protected]/someuser/somerepo.git 
git push -u origin --all # to push changes for the first time 
+0

如果您想要整個歷史記錄,請使用像Marcus一樣的clone命令。 – Joseph238 2016-06-02 18:08:43

-1

是什麼讓你認爲我們只支持git://協議?我們支持智能http協議,例如你可以直接導入https://github.com/jquery/jquery

因此,如果你的回購是可以從互聯網上訪問和做HTTP(S)那麼你應該沒有問題,使用進口商(這做一個適當的克隆和保留歷史)。