2017-01-10 147 views
0

我必須將TFS服務器轉移到GIT(Bitbucket)服務器。清除Git存儲庫

我們目前使用git-tfs來做到這一點,但我們在遷移之前做了一些測試(例如配置jenkins,檢查一切是否正確傳輸)。

問題是,現在看來我不能運行git push命令,因爲我的存儲庫已經充滿了上一次運行的大量內容。

有沒有辦法「重置」存儲庫(就像我從未做過任何提交)?不刪除它?

我找到了這個:Clear git repository on Bitbucket?但問題是我承諾6年的工作,擁有60多個分支,所以我不能一個接一個地清理它們。

我也不能只是刪除存儲庫,我們已經配置了很多東西(鉤子,連接jenkins,...)。

+0

* ...有超過60個分支,所以我不能一個一個地清理它們。*腳本編寫有什麼問題? – Leon

+0

@Leon我很樂意提出建議,但是之前的導入可能無法正常工作,或者它可能會遺留一些不清楚的東西(而不是垃圾回收)? – J4N

回答

1

這真的取決於TFS版本/ bitbucket。你可以刪除所有的分支和標籤,並重新設置第一次提交以獲得一個乾淨的石板。但取決於您的TFS服務器版本,這實際上可能不會導致收集「垃圾」。我不清楚BitBucket上的垃圾收集策略。

Git垃圾回收是在TFS 2015更新3中引入的,舊版本不會實際清理服務器上的任何內容,即使您刪除了對它的所有引用。

您可以輕鬆編寫清理過程的腳本。使用git fetch --all確保您的本地回購包含所有分支信息,然後使用git branch --list -r列出所有遠程分支。有了這個,你可以輕鬆地腳本刪除這些分支,並將其刪除到服務器。

Then use git update-ref refs/heads/master a12d48e2 (insert your own commitish) to reset the master.

然後git push --force --all送的一切回服務器。

+0

嗨,不知道爲什麼TFS版本很重要,但目前它是TFS 2015. 我做了一個'git -fetch --all'的問題:它會改變我剛剛完成生成的git存儲庫8很長時間,不是嗎?如何只刪除遠程分支而不是本地分支? – J4N

+0

只需在新的回購中執行此操作... – jessehouwing