我有多個包含所有檔案和練習的課程檔案夾。每個都是一個單獨的 repo,如下所示:
- courses (main folder; not a repo yet)
- course1
-.git -ex1 -ex2 -...
- course2
-.git -ex1 -ex2 -...
問題是我不想將它們推送到單獨的遙控器,我想在 GitHub 上創建一個“課程”存盤庫并推送所有其他存盤庫,同時為每門課程保留獨立的歷史記錄,并且仍然能夠克隆單個課程或包含所有內容的主要課程檔案夾。
實作這一目標的最佳方法是什么?我用 git-submodules 嘗試過,但據我所知,無論如何我都必須發布每個存盤庫。
uj5u.com熱心網友回復:
您可以維護單獨的分支,每門課程一個;克隆者可以采用所有歷史記錄的默認設定,也可以選擇他們想要的課程--single-branch -b。
假設您目前為每門課程都有一個分支,那么您現有設定的最快轉換將就地進行,這非常簡單:
cd courses; git init
git config advice.addembeddedrepo false
for course in course[1-9]*; do
git add $course
git fetch ./$course HEAD:refs/heads/$course
done
現在您的courses倉庫中的每門課程都有一個分支;此外,來自完整克隆的默認簽出將為每個創建一個空目錄;任何這樣做的人都可以
git ls-files -s | awk '$1==160000 { system("git worktree add "$4) }'
uj5u.com熱心網友回復:
盡量避免使用子模塊,使用Git的子樹
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414050.html
標籤:
