2012-04-28 67 views
1

這似乎是一個常見的問題,但我不能找到一個合理的解決方案:
恕我直言,與git submodules惡化問題出在哪裏子模塊承諾但不推變化使用包含git submodule update的存儲庫使用情況輕鬆刪除。引用:防止混帳子模塊更新改變

,如果你做了,並承諾一個子模塊內 變化沒有檢查出一個分支這不是安全運行git子模塊的更新。他們 將被無聲覆蓋:

(...後面有一個例子)。

所以,將以下問題
super是一個存儲庫根文件夾和submod是包含一個子模塊的子文件夾:

-super 
    -submod 

當我在子模塊承諾但不推,然後運行git submodule update我得到我的承諾 submod 更改刪除(哦,恐怖)。
如何在我這樣做時添加確認are you sure問題? 掛鉤,腳本或任何其他適用的想法更受歡迎。

TIA

回答

1

有沒有鉤用於預子模塊更新,所以你很可能需要做的是,而不是寫你使用代替git submodule update的腳本。

看到一個簡單的方法,如果您有任何修改子模塊是這樣的:

if git submodule status | grep -q '^+'; then 
    # at least one submodule has changes 
fi 

還要注意的是,如果一個偶然的更新吹走你的變化,你可能仍然能夠通過子模塊結帳的引用日誌挽救他們(因爲子模塊簽出本身就是完整的Git倉庫)。