2016-10-24 152 views
0

我有項目Foo與它自己的存儲庫。今天我在我的解決方案中添加現有項目:複製新項目Bar(不是我的存儲庫)的下載源中的所有文件,並在VisualStudio中設置參考(它編譯Bar而不是Foo)。Git submodule commit

現在我在複製Bar項目和我的Foo項目中改變了一些內容。轉到「Git擴展」並發現,我的項目Foo中包含的新項目Bar作爲子模塊,如預期的那樣。

我提交Foo的本地和原點的所有更改。我想在Bar中提交所有更改,但我記得 - 這不是我的項目(我沒有克隆它)。我只能在本地提交更改。如果我試圖拉改變它必須像「拉請求」Bar項目的作者。

我需要做什麼,那不要刪除/ recopy Bar項目?我只是需要從作者回購中克隆它,而不是使用回購更改複製文件夾中的設置(將作者的原始內容更改爲我),並將更改提交到我的原點。

我該怎麼做?謝謝。

回答

1

如果我可以改寫這個問題,它的工作原理出來:

  • 我寫了一個項目($礦),並選擇做一些其他的項目($他們)的子模塊。
  • 然後,我修改了$,並將這些修改提交給我的存儲庫副本。
  • 我現在想發佈我的回購($ mine)的副本以及我的修改版本的項目($ theirs + mods)的鏈接,但是不會發布我修改過的$的副本,因爲它們尚未納入我的更改。

答案是「這是子模塊不可能的」。您的子模塊必須指向包含特定提交ID的可公開訪問的存儲庫。因此,您必須等到他們的已將併入您的更改,以便您可以使用$他們的提交,或者發佈您自己的$他們的分支變體,以便存在包含可以提交的公共存儲庫使用。 (或者,您可以放棄子模塊,將其代碼直接合併到您自己的存儲庫中,雖然這帶來了它自己的一系列問題。)