日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

git 仓库拆分方案对比

發布時間:2023/12/13 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 git 仓库拆分方案对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此文已由作者張磊授權網易云社區發布。

歡迎訪問網易云社區,了解更多網易技術產品運營經驗。

前言

git 拆分倉庫在網上已有的案例上來看,分為 submodule 和 subtree。 還有基于這兩個方案進行改進的 subrepo、git-repo 等,當然還可以使用 npm 去管理。

準備工作

可以先閱讀之前的 submodule 、 subtree 以及 subrepo 的文章

git-repo 可以閱讀 https://code.google.com/archive/p/git-repo/ 和https://source.android.com/source/developing 以及網上其他內容

https://www.atlassian.com/blog/git/git-project-dependencies 這里推薦了很多工具。

倉庫拆分

無論是最終使用哪種方式,首先是要把代碼拆開放到新倉庫里。

方案1:手工強拆

把目錄的代碼備份,然后從主倉庫刪除,再將代碼上傳到新建的子倉庫,問題在于提交歷史去丟失,這個問題很嚴重,以后找背鍋的人都難 :(。

方案2:git subtree split

使用 git subtree split -P path/to/module -b branchName,注意 branchName 不要重名,如果歷史記錄多的話這個比較慢,看起來是檢索歷史提交記錄,抓出符合條件(某個文件夾下)的提交日志,具體可以查看說明文檔,支持并行。這種做法主倉庫的歷史記錄還保留提交。

方案3:filter-branch

這個命令本質上是重寫提交,但是反過來想一想,如果你把指定目錄之外的文件都刪除了,那不就是得到一個干凈的子倉庫了? git filter-branch -f --prune-empty --subdirectory-filter path/to/module。這在文件被添加的時候才會開始遍歷,這樣在某些情況下就比 方案2 快很多,不支持并行。

使用舉例:比如說歷史記錄中提交某個網站的帳號密碼,又過了很多提交才發現,希望刪除掉,就可以使用這個方案。這種做法也會讓歷史記錄變的干凈。

看起來方案3好用很多。

方案選擇

submodule 在代碼頻繁更新的時候,需要處理的沖突會比較多,而且一開始會比較迷惑,實際上還算簡單。但是在頻繁的沖突處理的過程中,無疑增大了時間消耗。submodule 本質上是子倉庫自身做修改推送合并,而主倉庫獲取的是子倉庫的最新的 commitid,對子倉庫的更新僅僅是更新其 commitid。

subtree 可以向正常使用 git 倉庫一樣操作子倉庫,成員感知不到子倉庫的存在,復雜度被隱藏在了維護主倉庫和子倉庫的同步的人那里。

subrepo 需要安裝相關程序,且還在發展中,雖然解決了一些 submodule 和 subtree 的問題。

npm 在只是引用倉庫的情況下,不失為是一種好辦法,但是實際上更改頻率會很高,故不考慮。

git-repo 增加了學習成本,需要學習 repo 的用法,同時需要尋找安裝 Windows 版本的方法,以及用于管理 Android 項目,看完官網說明就準備舍棄這個方案了。

參考

https://services.github.com/on-demand/downloads/submodule-vs-subtree-cheat-sheet/

https://stackoverflow.com/questions/359424/detach-move-subdirectory-into-separate-git-repository

免費體驗云安全(易盾)內容安全、驗證碼等服務

更多網易技術、產品、運營經驗分享請點擊。

相關文章:
【推薦】2017年內容安全十大事件盤點
【推薦】瀏覽器插件及好用的小工具
【推薦】KOL運營之——如何與網文作者高效地約稿?

總結

以上是生活随笔為你收集整理的git 仓库拆分方案对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。