2016-12-01 64 views
2

我在一所學校編碼,要求我們使用git將我們所有的工作提交給他們的服務器。每個作業都有自己的具有自己的.git目錄的文件夾。強制在Git中添加子模塊的內容

我想讓父文件夾推送到我的github,但是當我推送它時實際上並沒有上傳文件夾內的代碼,因爲它被認爲是一個子模塊。我已經嘗試製作一個忽略所有.git文件夾的.gitignore文件,但那不起作用。

我見過的唯一解決方案是每次我想將項目內部的更改推送到我的github,或者編寫一個將父目錄的內容與第二個目錄同步的腳本時手動執行git remote,然後在推送前刪除所有的.git文件夾。

有沒有什麼辦法可以乾淨地推送到github,而無需手動推送每個文件夾,並且不必爲了推送到github而創建一個本質上是我工作副本的目錄?

+0

「手動推送每個文件夾」有什麼問題?這對於Git來說是最合適的,假設每個任務與其他任務無關。每個項目一個存儲庫。你經常更新舊作業嗎?如果'assignment1 /'通過'assignment4 /'沒有改變,推送'assignment5 /'和推送'course-assignments /'有什麼區別? – Chris

回答

2

爲推動一切github上,

find -name .git -execdir git push \; 

將做到這一點。

git rm -rf --cached path/to/submodule  # to clear out any submodule entry 
git add path/to/submodule/. 

和git不會把它作爲一個子模塊在回購任何:

如果你真的想通過打孔的子模塊,您可以通過添加內容,而不是子模塊繞過庫更多。現在您可以在兩個存儲庫中跟蹤其內容。 I've seen this before,但它看起來像很多工作沒有具體的好處,我可以看到。 Here's another way to go about it,保持子模塊的邊界和工作流程大體完好,但將子模塊推向主模塊的分支。