簡體   English   中英

將具有歷史記錄的Git分支移至新倉庫

[英]Moving Git branch with history to new repo

我有一個Git倉庫,在不同分支上有多個項目

  • 主*
  • 前端
  • 后端
  • api

我想將它們分解為不同的獨立存儲庫。 我已經為每個倉庫創建了新的倉庫。 我希望每個分支及其所有提交歷史記錄都移到新的單獨存儲庫中。

如果每個分支僅包含相應的代碼,那么這很簡單。 使用git clone --single-branch --branch <original-repo-url>創建新的git clone --single-branch --branch <original-repo-url>實際上甚至更簡單,但是如果您已經init並且只想引入歷史記錄,則可以做一些事情喜歡

git fetch <original-repo-url> +frontend:master

如果您還沒有在新的倉庫中創建第一個分支,那么您將得到奇怪的行為-因此,在這種情況下,您將只創建一些虛擬提交,然后從分支中分離出來,這樣更新就可以通過了。

git commit --allow-empty -m temp 
git checkout --detach
git fetch <original-repo-url> +frontend:master
git checkout master

另一方面,如果您的每個分支都包含所有代碼,並且您想要重寫每個“新”存儲庫的歷史記錄以僅包括相關代碼,那么您可能要使用git filter-branch 它有很多選項,因此如果沒有更具體的細節,我無法確切地說出您要使用的選項,但是子目錄過濾器可能會很有趣。

網址https://git-scm.com/docs/git-filter-branch的文檔

暫無
暫無

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

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