Sachverhalt: A. Die Staatsanwaltschaft IV des Kantons Zürich verdächtigt A._, am frühen Morgen des 18. Februar 2014, bei der Tramhaltestelle Milchbuck in Zürich, B._ überraschend angegriffen und massiv zusammengeschlagen zu haben. Er habe während rund 20 Minuten den reglos am Boden liegenden B._ immer wieder mit den Füssen gegen den Kopf und den Oberkörper getreten; mindestens einmal sei er ihm mit dem Fuss von oben herab auf den Kopf getreten, was einen ausgeprägten Abdruck hinterlassen habe. A._ wurde kurze Zeit nach der Tat verhaftet und am 19. Februar 2014 in Untersuchungshaft versetzt. Am 8. Oktober 2014 stellte A._ ein Haftentlassungsgesuch, dem sich die Staatsanwaltschaft widersetzte. Am 24. Oktober 2014 hiess das Bezirksgericht Zürich als Zwangsmassnahmengericht das Haftentlassungsgesuch von A._ gut. Es ordnete seine Entlassung aus der Untersuchungshaft gegen die Leistung einer Kaution von Fr. 100'000.-- an und erteilte ihm die Auflage, sich wöchentlich einmal vom Festanschluss seiner Zürcher Wohnung aus bei der Staatsanwaltschaft zu melden. Am 27. Oktober 2014 erhob die Staatsanwaltschaft beim Obergericht des Kantons Zürich Beschwerde gegen die Haftentlassung. Am 10. November 2014 hiess das Obergericht die Beschwerde gut und wies das Haftentlassungsgesuch ab. B. Mit Beschwerde in Strafsachen beantragt A._, diesen Beschluss des Obergerichts aufzuheben und ihn unter Anordnung von Ersatzmassnahmen aus der Haft zu entlassen oder die Sache eventuell an die Vorinstanz zu neuem Entscheid zurückzuweisen. C. Das Obergericht verzichtet auf Vernehmlassung. Die Staatsanwaltschaft beantragt, die Beschwerde abzuweisen. In seiner Replik hält A._ an der Beschwerde fest. 