2017-03-16 88 views
0

你好夥伴開發者。Git - 防止在特定文件夾上發生意外提交

我有一個包含子文件夾的存儲庫,包含用作內部框架的代碼文件。假設這個文件夾名爲package

我保留這個包文件,因爲這保證了更容易的構建,我們正在使用的特定框架缺少包管理器。

package文件夾中的文件應該由單個開發人員(可能在單獨的分支上)進行維護,並且只需謹慎更新。

現在,我想防止package文件夾中的文件意外提交。

有沒有辦法實現這個任務?

我正在考慮不同的解決方案:

  • 混帳掛鉤;但用戶很容易忘記啓用它們;
  • 替代包管理器;但它們應該很容易添加,因爲我們已經使用npm和nuget,並且我不想管理太多的工具;
  • git submodules;但許多開發人員很難確定如何更新/同步/ etc,而構建該軟件包的repo與共享的文件不同。所以我應該爲這個軟件包管理兩個回購站,一個用於開發,一個用於分銷。

我把我的頭撞在牆上...任何建議將不勝感激。

謝謝!

+0

你可以[使用npm從私人git回購安裝](http://stackoverflow.com/questions/10386310/how-to-install-a-private-npm-module-without-my-own-registry )。你只需要有相同的憑據來訪問你的主要回購,因爲它也是私有的。 – amenadiel

+0

但是,如何防止包文件夾中的提交?我錯過了什麼嗎? –

回答

0

我覺得這會是一個更好的評論,但我不能這樣做,但....

對於所有其他開發者,你能不能這個包目錄添加到他們的git的,忽略文件?對於用戶維護它 - 可能會更新.git-ignore,以便在需要時允許包通過,然後執行另一個更改以再次忽略包目錄。

我意識到這是一種強迫它的暴力,但它仍然可能是一個潛在的解決方案,雖然不是最優雅的一個。

+0

AFAICT,如果在存儲庫中跟蹤文件,即使它們與gitignore匹配,它們上的更改也將被跟蹤。試試這個:提交一個文件,然後編輯gitignore忽略它,然後更新他的內容。 Git狀態應該顯示更新的文件,即使它應該被忽略。要正確地從repo中刪除文件,你需要一個git rm --cached。 –

+0

我同意你的意見。軟件包目錄必須由管理軟件的人員解除。或者,你提到使用單獨的分支,那麼除了替換供應商之外,還有什麼關於[this](http://stackoverflow.com/questions/11788229/how-do-i-push-files-specified-in-gitignore)的問題用你的軟件包目錄? – Erasyn