簡體   English   中英

Github 子分支還是子分支?

[英]Github Sub-branches or Children of Branches?

我是源代碼管理的新手,並且仍在接觸 Github 提供的所有功能。

我有一個在移動設備上運行的應用程序,整個項目都在一個存儲庫中,只有一個分支包含整個項目。 我還想支持其他一些平台(AR 和 VR),但我不想在移動版本中運行這些平台所需的任何 SDK,因為這會顯着增加應用程序的文件大小。

理想情況下,我想知道使用 Github 將我的主分支與整個移動應用程序結合起來,並為 AR 和 VR 創建 2 個子分支的最佳方法。 理想情況下,這些支行能夠:

  • 接收主(移動)分支自動獲取的任何更新。 這樣每個分支都有相同的“游戲”,唯一的區別是將其構建到特定平台所需的特定於平台的 SDK。
  • 在更新 SDK 或與主分支無關的其他功能時,防止更新主(移動)分支。

我了解拉/推/合並的概念,但我想知道 Github 是否提供了任何其他功能來簡化我想要完成的過程。 我還想確保如果我將更新從主分支推送到子分支,則不會刪除任何特定於平台的 SDK,因為它們不會出現在我正在修改的分支中。

讓我知道我是否在正確的軌道上,或者在研究 Github 的功能時是否遺漏了什么。 謝謝您的幫助。

“子分支”的概念在 Git 中並不存在。 分支必須包含存儲庫中的所有文件(除非您要在該分支中刪除/創建它們。)但是,您要解決的問題是一個非常常見的問題——monorepo 模式似乎會有所幫助這里。

這個想法是,您的存儲庫中的每個項目都有一個文件夾,您還可以為任何共享代碼創建一個文件夾。 因此,在您的情況下,您可能有一個用於移動設備的文件夾、一個用於 AR 的文件夾、一個用於 VR 的文件夾以及一個用於共享游戲代碼的文件夾。

通過這種方式,您可以單獨更新組件,同時仍將它們保留在同一個存儲庫中——如果 VR SDK 需要更新,您可以從main分支出來,更新嚴格位於 VR 文件夾中的 VR 文件,然后合並該分支到主要。 這將使其他文件夾保持不變。

如果此方法不能為您的目的提供足夠嚴格的分離,那么為移動、VR、AR 和游戲代碼創建一個單獨的存儲庫可能是個好主意。 然后,您可以讓游戲的不同實現git clone游戲存儲庫作為其構建過程的一部分。

一般來說,你正在尋找的“如果游戲更新,重建這些子項目”的邏輯是你需要一個自動化管道(或者甚至只是 GitHub Actions)的東西,而 git 將是該管道的觸發器。 Git 本身不是構建工具。

暫無
暫無

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

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