1) Чепчик. Он же чепец. Это слово известно ещё в древнерусском (чепьць), а также в массе других славянских языков (украинское чепець, болгарское чепици "башмаки", сербохорватское чѐпац "женский чепец", словенское čерeс, чешское и словацкое čерeс, польское сzерiec). Этимологи прошлого очень любили сближать это слово со словом шапка, но на сегодняшний день эти сопоставления считаются неактуальными. Слово, судя по всему, исконное. Реконструируется праславянское форма типа *čерьсь, сопоставляемая с литовским kepurė "шапка", латышским cepure "шапка; шляпа", а также (с некоторыми оговорками) с древнегреческим σκεπάζω "покрывать, накрывать". Сравнивают также с диалектным чапать "хватать, брать", чепать "зацеплять".
2) Шапка. Это слово было известно в русском языке с первой четверти XIV века. Существуют этимологические легенды о том, что оно было заимствовано в русский напрямую из французского ещё во времена Ярослава Мудрого, но это довольно сомнительно. Как бы то ни было, связь русского шапка и французского chape, chapeau "шляпа" (далее из латинского cappa "каппа (головной убор)") для многих представляется очевидной. Спорят о том, каким путём и когда оно пришло в русский. Обычно посредником называют немецкий, иногда привлекают славянские языки (ср. чешское čарkа, словацкое čарica, польское сzарkа), где слово начинается на совсем другую согласную.
3) Кепка. Уменьшительная форма от слова кепи, заимствованного из французского képi "кепи (военный головной убор)", далее из немецкого Käppi, уменьшительной формы от Kappe "каппа", далее от латинского cappa "каппа"; с последним, как мы помним, связывают слово шапка.
Итак, можно уверенно считать родственными слова шапка и кепка; слово чепец им не родственно.