2015-07-19 42 views
1

看來,我嘗試過的GUI或者git在他們的子模塊支持中存在缺陷,或者git本身不能正確處理子模塊。當我在主倉庫中「重置爲此提交」時,subrepos不會更新,因此項目會被破壞。在Mercurial中有一個特殊的文件,用於跟蹤每個主repo commit與subrepos的相應狀態之間的關係。並且恢復到較舊的提交在那裏按預期工作,subrepos始終保持同步。 git不支持嗎?當將主repo重置爲較舊的提交時相應地更新子模塊?

+1

重置後調用「git submodule update」 – mguijarr

+0

@mguijarr:謝謝,但似乎沒有幫助。重置爲較舊的提交後,該項目無法編譯,我從不提交任何不能編譯的內容。 'submodule update'影響了一個subrepo,但不是另一個。 –

+0

你永遠不會犯任何不能編譯的東西......海事組織不是一個好主意,通常我寧願早點提前跟蹤所有的變化。我很抱歉,我無法幫助你,我猜你的問題沒有與git鏈接,因爲子模塊更新應該已經完成​​了。嘗試一下「make clean」;) – mguijarr

回答

1

其中一個subrepos不受子模塊更新的影響。我手動重置該回購,現在一切都在建立。

這意味着subrepo gitlinkspecial entry in the index)沒有正確地記錄(添加,提交和推送)的母公司回購。
父repo引用該子模塊的較早的SHA1,並且git子模塊更新將該子模塊設置爲舊的SHA1。

如果您已手動重置子模塊,請不要忘記返回到父回購,添加,提交併推送該修改(意思是您剛剛重置您的子模塊的新SHA1)。

+0

難道它與我通過簡單編輯.gitmodules添加subrepo的事實有關嗎?不過,我確實將這個子報告提交給了主要的回購。 –

+1

@VioletGiraffe是的,當涉及到子模塊時,最好使用'git submodule'命令,如'git submodule add'來添加子模塊。 – VonC

+0

謝謝,可能就是這樣。去看看我現在是否可以修復它。 –

相關問題