Faits: A. A.X._, ressortissante ukrainienne née en 1983, est arrivée en Suisse en 2005. Elle a bénéficié dans un premier temps d'un permis de séjour de courte durée comme danseuse de cabaret, puis d'un permis de séjour pour études afin d'apprendre le français. Lors de l'obtention de ce titre de séjour, elle a signé un engagement selon lequel elle quitterait la Suisse au terme de sa formation, soit au plus tard en mai 2007. Au début de l'année 2007, A.X._ a sollicité une prolongation d'une année de son permis de séjour pour études, afin d'obtenir le niveau "B2" en français. Le 7 décembre 2007, la prénommée a épousé B.X._, ressortissant suisse. A la suite de cette union, l'Office cantonal de la population du canton de Genève (ci-après: l'OCP) lui a délivré une autorisation de séjour au titre du regroupement familial. Le 15 janvier 2009, A.X._ a annoncé à l'OCP qu'elle emménageait, seule, dans un studio qu'elle louait - comme titulaire du bail - à Genève. Dans un courrier du 20 août 2009 adressé à l'OCP, B.X._ a indiqué que son épouse n'était jamais venue vivre dans le logement conjugal. Le mariage était fictif et il entendait demander le divorce. Le 30 novembre 2009, A.X._ a déposé plainte contre son époux. Alors qu'elle se disputait avec la nouvelle amie de ce dernier, celui-ci avait tenté de les séparer. Elle lui avait alors donné un coup de pied dans l'entrejambe et son conjoint l'avait giflée. Par courrier du même jour, l'OCP a fait savoir à A.X._ que, du moment que l'union conjugale était rompue, il n'entendait pas renouveler son autorisation de séjour. Par acte du 11 décembre 2009, B.X._ a saisi le Tribunal de première instance du canton de Genève, en concluant à l'annulation de son mariage, subsidiairement au divorce. Le 21 décembre 2009, A.X._ a informé l'OCP de ce que son époux vivait avec une autre personne et qu'elle avait fait l'objet de violences domestiques lors d'une visite. Elle ne voulait pas divorcer et aimait toujours son conjoint. Dans une écriture du 17 mars 2010, elle a précisé à l'OCP les circonstances de son mariage. D'une part, son époux l'avait chassée du domicile conjugal et avait changé les serrures. D'autre part, elle travaillait dans le domaine de la manucure et était, depuis le mois d'octobre 2009, associée gérante de la société Y._ Sàrl. Au vu de ces circonstances, compte tenu en particulier du fait qu'elle était autonome financièrement et bien intégrée, son autorisation de séjour devait être renouvelée. B. Par décision du 22 novembre 2010, l'OCP a décidé de ne pas renouveler l'autorisation de séjour de l'intéressée. Un délai échéant le 22 janvier 2011 lui a été imparti pour quitter la Suisse. Par jugement du 26 novembre 2010, le Tribunal de première instance a débouté B.X._ tant de ses conclusions en annulation du mariage que de ses conclusions en divorce. Le 23 décembre 2010, A.X._ a saisi la Commission cantonale de recours en matière administrative, devenue entre-temps le Tribunal administratif de première instance (ci-après: TAPI), d'un recours contre la décision de l'OCP du 22 novembre 2010. Elle a notamment exposé que sa mère était sur le point de déménager de l'Ukraine vers l'Angleterre, pays où l'une de ses propres s?urs résidait avec son époux et leur fille. Une autre de ses s?urs habitait dans le canton de Vaud. Toute sa vie tant sociale que professionnelle était maintenant à Genève et elle n'avait plus de famille dans son pays. Elle avait obtenu, en avril 2011, un baccalauréat universitaire en relations publiques et en marketing de l'université de Kiev en Ukraine, pays où elle était retournée deux fois par année entre 2008 et 2011 afin d'y passer les examens. Par jugement expédié le 2 novembre 2011, le TAPI a rejeté le recours. L'union conjugale avait duré moins de 3 ans. Les violences conjugales subies n'atteignaient pas le degré de gravité permettant d'admettre que la poursuite du séjour en Suisse était nécessaire. La réintégration sociale et professionnelle en Ukraine de A.X._ n'était pas fortement compromise. A.X._ a déféré ce jugement à la Cour de justice du canton de Genève, laquelle a rejeté le recours par arrêt du 30 juillet 2012. C. A l'encontre de cet arrêt, A.X._ forme un recours en matière de droit public et un recours constitutionnel subsidiaire. Outre l'octroi de l'effet suspensif, l'assistance judiciaire et la suspension de la cause jusqu'à droit connu sur une nouvelle requête de permis de séjour fondée sur sa nouvelle nationalité bulgare, elle demande en substance, sous suite de frais et dépens, l'annulation de l'arrêt attaqué et des décisions qui l'ont précédé, ainsi que l'octroi d'une autorisation de séjour; subsidiairement, elle conclut au renvoi de la cause à la Cour de justice. L'OCP n'a pas formulé d'observations sur le recours. La Cour de justice a déclaré persister dans les considérants et le dispositif de son arrêt, alors que l'Office fédéral des migrations a conclu au rejet du recours. Par ordonnance du 8 octobre 2012, le Président de la IIe Cour de droit public du Tribunal fédéral a rejeté la requête de suspension de la procédure. 