Faits: A. Le 23 septembre 2002, X._, ressortissant gambien, né en 1980, a déposé en Suisse une demande d'asile au nom de A._, ressortissant du Libéria. Sous cette fausse identité, il a été condamné par le Tribunal de l'arrondissement de Zurich, le 8 septembre 2005, à vingt-deux mois d'emprisonnement ferme pour infraction qualifiée à la loi fédérale sur les stupéfiants (LStup; RS 812.121). La demande d'asile ayant été définitivement rejetée le 4 avril 2006, l'Office fédéral des migrations (en abrégé: ODM) a prononcé une interdiction d'entrée en Suisse à son encontre, valable jusqu'au 3 décembre 2011. Le 14 décembre 2007, X._ a épousé une ressortissante suisse, B._, mère de deux enfants issus de précédentes relations. Partant, il a été mis au bénéfice d'une autorisation de séjour au titre de regroupement familial. Par ordonnance du 28 avril 2008, le juge d'instruction genevois a reconnu X._ coupable d'infraction à la LStup et l'a condamné à une peine privative de liberté de quatre mois. Compte tenu de ses condamnations, l'ODM a, par courrier du 13 novembre 2008, invité l'Office cantonal de la population du canton de Genève à ne pas renouveler l'autorisation de séjour de X._. Le *** 2009, un enfant prénommé C._ est né de l'union des époux X._-B._. Par décision du 13 novembre 2009, déclarée exécutoire nonobstant recours, l'Office cantonal de la population a refusé de renouveler l'autorisation de séjour de X._ et lui a imparti un délai pour quitter la Suisse. Par jugement du Tribunal de police du canton de Genève du 1er février 2010, confirmé par la Cour de justice le 3 mai 2010, X._ a été condamné à une peine d'emprisonnement de vingt mois pour infractions à la LStup. Le 25 janvier 2011, le Tribunal administratif de première instance du canton de Genève a rejeté le recours déposé par l'intéressé contre la décision de l'Office cantonal de la population du 13 novembre 2009. B. X._ a recouru contre ce jugement auprès de la Chambre administrative de la Cour de justice du canton de Genève (ci-après: la Cour de justice) qui, par décision du 28 mars 2011, a refusé la demande de mesures provisionnelles tendant à autoriser le recourant à demeurer en Suisse et à y travailler. Le recours en matière de droit public contre cette décision, déposé auprès du Tribunal fédéral par X._, a été rejeté dans la mesure de sa recevabilité, par arrêt du 23 août 2011 (2C_347/2011). Après avoir entendu les parties, la Cour de justice a rejeté le recours au fond et a confirmé le renvoi en Gambie du recourant, par arrêt du 15 mai 2012. Elle a retenu qu'au vu des condamnations pénales de l'intéressé, l'autorisation de séjour de ce dernier pouvait être révoquée. Par ailleurs, au vu de la pesée des intérêts en présence, le recourant ne pouvait bénéficier de la protection de l'art. 8 CEDH. C. Agissant par la voie du recours en matière de droit public, X._ conclut, principalement, à l'annulation de l'arrêt de la Cour de justice du 15 mai 2012 et au renouvellement de son autorisation de séjour, subsidiairement, au renvoi du dossier à l'autorité cantonale pour nouvelle décision dans le sens des considérants. Le recourant présente également une demande d'assistance judiciaire, en faisant valoir qu'il ne bénéficie d'aucun revenu et que son épouse est soutenue par l'Hospice général. La Cour de justice persiste dans les considérants et le dispositif de son arrêt. L'Office cantonal de la population a été invité à produire son dossier sans échange d'écritures. D. Par ordonnance présidentielle du 4 juillet 2012, l'effet suspensif a été attribué au recours. 