Faits : A. A._, ressortissant français né en 1990, est prévenu depuis le 5 septembre 2014 de dommages à la propriété, violation de domicile et vols en bande et par métier, portant sur une trentaine de motocycles. Il a été mis en détention provisoire du 7 septembre 2014 au 3 octobre 2014. Par ordonnance du 6 octobre 2014, le Tribunal des mesures de contrainte du canton de Genève (Tmc) a ratifié la libération sous condition prononcée par le Ministère public, moyennant les obligations suivantes: - domicile fixe et permanent chez la grand-mère du prévenu à Divonne-les-Bains; - travail régulier auprès de son employeur à Gland, avec justificatifs; - interdiction de tous contacts avec d'autres prévenus ou suspects; - obligation de déférer à toute convocation. Le Tmc a précisé que ces mesures de substitution demeuraient valables "jusqu'à droit jugé". B. Par arrêt du 22 décembre 2014, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté le recours formé par le prévenu. Celui-ci ne contestait pas les mesures de substitution, mais demandait leur limitation à trois mois comme en matière de détention provisoire. La cour cantonale a estimé que la durée de la détention provisoire subie, combinée avec celle des mesures de substitution, n'était pas disproportionnée. La mise en accusation paraissait encore éloignée, mais les mesures de substitution pouvaient être revues en tout temps, y compris à l'initiative du prévenu. La protection juridique était ainsi suffisante et les mesures de substitution portaient une atteinte moins grave que la détention, de sorte qu'il n'y avait pas lieu d'instituer un contrôle périodique. C. Par acte du 22 janvier 2015, A._ forme un recours en matière pénale avec une demande d'assistance judiciaire. Il conclut à ce que l'ordonnance du Tmc soit complétée en ce sens que les mesures de substitution sont limitées à trois mois au maximum. Subsidiairement, il demande le renvoi de la cause à l'autorité précédente pour nouvelle décision au sens des considérants. La Chambre pénale se réfère à son arrêt, sans observations. Le Ministère public conclut au rejet du recours en se référant aux observations déposées devant l'instance précédente. Le recourant a renoncé à présenter des observations complémentaires et persiste dans ses conclusions.