2013-08-20 22 views
0

在包含兩個分支(master & develop)和文件夾shared中包含的git子樹存儲庫的存儲庫中,是否可以在更改分支時自動將shared子樹同步到特定版本(提交)?Git:切換分支時可能將子樹指向不同的提交?

我最好的猜測是,我可能正在尋找一種方法來在本地更改分支時運行腳本。該腳本然後在子樹上執行必要的git拉/取命令。

假設主分支應始終指向共享子樹存儲庫的v1.0標記提交,而develop分支始終檢出最新的提交。對共享子樹的編輯只能在開發分支中進行,並且在切換到主設備之前將被提交(或隱藏)。

回答

0

是的,你可以讓你的子樹在每個分支點指向不同的代碼版本。子樹的狀態與任何其他文件集一樣屬於提交,這意味着一個分支可以在其他分支的子樹中具有不同的內容。在結帳時,子樹的狀態將隨同該分支上的任何內容一起更新,就像任何其他文件一樣。

最簡單的顯示方法是在master有一個子樹,從master創建一個分支,並在分支中更新所述子樹並提交。因此該分支將具有該子樹的修改版本,並且如果檢出master它將恢復到以前留在master中的狀態。

0

我很困惑爲什麼這個問題已經放棄了這麼久。我在嘗試重建SVN「外部」依賴關係時遇到了SVN-Git遷移中的相同問題。

只是爲了在這裏給互聯網另一個答案,我認爲要走的路將是創建一個腳本調用git fetch ...git subtree pull ...以及post-checkout hook執行此腳本。我的想法是腳本在每個分支上都會有相同的名稱,這樣post-checkout掛鉤只會調用switch_dependency.py或其他東西,而且您必須手動處理該腳本中的正確命令。

相關問題