簡體   English   中英

如何修剪git-svn存儲庫以刪除分支和標簽而無需重新克隆?

[英]How to trim a git-svn repository to remove branches and tags WITHOUT re-cloning?

如果我忘了只簽出SVN信息庫的trunk ,而是簽出了所有內容,那么以后有什么方法可以修剪我的git-svn信息庫而無需重新克隆它?

您必須將git filter-branchsubdirector-filter以更改存儲庫歷史記錄,以便僅包括主干更改,並且在目錄的根目錄中包含git filter-branch --subdirectory-filter trunk

而且您還必須更改提交消息(例如,在與msg-filter相同的filter-branch運行,以將/trunk包含在git-svn元數據中,該元數據存儲在提交消息中,例如git filter-branch --subdirectory-filter trunk --msg-filter 'sed s!/project@!/project/trunk@!'

然后,您必須將git config -egit config值svn-remote.svn.url更改為僅通過在最后添加/trunk來同步trunk

您還必須通過git update-ref refs/remotes/git-svn master更新git-svn遠程引用。

最后但並非最不重要的一點是,您需要通過刪除.git/svn/refs/來刪除一些將由git-svn重建的元數據。

完成所有這些操作后,您應該就可以了,我只是在一個小的測試存儲庫中進行了嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM