Вопрос обсуждался на mail.ru Там был лучший ответ: ёлки-палки - дефис, ёлки - не палки, - тире.
{*Как их отличать - хрен его знает. Я сам не знаю. Не суть!*}
Теперь начну свое исследование вопроса.
Тире - от фр. tiret (tirer — растягивать). Было впервые введено русским историком Николаем Михайловичем Карамзиным (в XVIII веке) под названием "черта". Правила использования тире впервые появились в "Российской грамматике" Антона Алексеевича Барсова, где "тире" называлось "молчанкой". Ещё оно называлось "мыслеотделительным знаком" или "длинным тире" в отличие от "короткого тире" - "дефиса".
Дефис - от латинского divisio - отделение (разделение). В немецком divis переводится как "черточка", "дефис". Почему в русском пишется через "е" - загадка. Видимо, как расслышали, так и записали. Так и повелось.
Думаю, теперь легко запомнить: когда слова или их части отделяются черточкой (или переносятся) - это дефис.
P.S. Если возникают проблемы с набором тире и дефиса в компьютерных программах, можно использовать прием набора символов по их коду при нажатой клавише Alt. Код набирается на цифровой панели справа.
Короткое тире (дефис) - Alt+0150
Длинное тире (тире) - Alt+0151
(можно потренироваться прямо на БВ или в Блокноте, *в Word'e - не проходит*).
Для MS Word:
Ctrl+"Num -" - короткое тире (дефис)
Ctrl+Alt+"Num -" - длинное тире. Здесь "Num -" - клавиша "минус" на цифровой панели.
Также можно настроить автозамену, например, "--" преобразовать в длинное тире.