2012-01-12 182 views
1

如何在發生以下警告後合併此子模塊?子模塊合併失敗 - 「未檢出」警告

warning: Failed to merge submodule sites/all/modules/contrib/panelizer 
       (not checked out) 
+1

...的子模塊簽出? (你有沒有運行'git submodule update'?)子模塊是主存儲庫中的Git存儲庫;必須將它們克隆並在必要時進行更新 - 'git submodule update'是執行此操作的命令。如果該目錄中沒有文件,則不會檢出。 – Cascabel 2012-01-12 19:40:42

+0

我明白了。感謝Jefromi! – Sam3k 2012-01-14 02:25:06

回答

1

錯誤消息來自submodule.c,特別是merge_submodule() method

int merge_submodule(unsigned char result[20], const char *path, 
        const unsigned char base[20], const unsigned char a[20], 
        const unsigned char b[20], int search) 
{ 
    struct commit *commit_base, *commit_a, *commit_b; 
    int parent_count; 
    struct object_array merges; 

    // [...] 

    if (add_submodule_odb(path)) { 
    MERGE_WARNING(path, "not checked out"); 
    return 0; 
    } 

add_submodule_odb() method內所述子模塊被檢查.git存在。

因此,正如Jefromi評論的那樣,您可能沒有按照Pro Git book中的描述做git submodule update
你應該看到SO問題「Git - easy way pull latest of all submodules」更多關於如何取回你的子模塊的內容全部

隨着近來混帳,你可以pull and update in one go

git alias update_submodules='git pull --recurse-submodules && git submodule update' 
+0

感謝VonC的詳細回覆;並非常感謝你的別名寶石。我會轉而使用它。 – Sam3k 2012-01-14 02:25:58