<p indent="0mm">Quantum computation has been shown to be superior to classical computation in solving some problems, and therefore can substantially change our life. However, the realization of quantum computation is still challenging, even if quantum technologies have been improved significantly. Two main obstacles to the realization of practical quantum computation are control errors and decoherence. Control errors are caused by inaccurate manipulations of quantum systems and decoherence is caused by the inevitable interaction between the system and its environment. Geometric phases are only dependent on evolution paths of quantum systems but independent of the evolution details and therefore quantum computation based on geometric phases, i.e., geometric quantum computation, is robust against control errors, benefiting the realization of practical quantum computation. The early proposals of geometric quantum computation are based on adiabatic geometric phases. These proposals require quantum systems to undergo adiabatic evolution, which makes quantum systems evolve for a long time. To circumvent this, nonadiabatic geometric quantum computation based on nonadiabatic Abelian geometric phases was proposed soon after. In 2012, nonadiabatic holonomic quantum computation based on nonadiabatic non-Abelian geometric phases was proposed, which also circumvents long-time evolutions. Moreover, compared with nonadiabatic geometric quantum computation that uses the geometric phase as one parameter of a quantum gate, nonadiabatic holonomic quantum computation uses the holonomic matrix itself as a quantum gate. This makes nonadiabatic holonomic quantum computation possess whole-geometric property. Due to the merits of both geometric robustness and high-speed implementation without the limit of adiabatic evolution, nonadiabatic holonomic quantum computation has been attracting much attention. Until now, much progress has been achieved in the field of nonadiabatic holonomic quantum computation. On one hand, various methods have been proposed to design more efficient nonadiabatic holonomic gates. Nonadiabatic holonomic gates were first realized by using resonant laser fields to drive a three-level system. After this, the single-shot proposal and the single-loop proposal were proposed, allowing us to realize one-qubit gates by a shorter path and thereby reducing the exposure time of nonadiabatic holonomic gates to the environment. To further shorten the exposure time, the path-shortening protocol was put forward, where nonadiabatic holonomic gates can be realized based on a class of extended evolution paths that are shorter than the former ones. Recently, a general approach of constructing Hamiltonians for nonadiabatic holonomic quantum computation was put forward, by using which one can easily find a Hamiltonian making the quantum system evolve along a desired path so that nonadiabatic holonomic gates can be realized with an economical evolution time. On the other hand, various methods have been proposed to combine nonadiabatic holonomic gates and various decoherence-resilient methods, making the resulting schemes robust against both control errors and decoherence. The first proposal in this aspect is combining nonadiabatic holonomic gates and decoherence-free subspaces. Gradually, proposals combining nonadiabatic holonomic gates with noiseless subsystems, dynamical decoupling and surface codes were put forward. Last but not least, various proposals suitable for specific physical systems have been proposed and particularly various experimental platforms have been used to demonstrate nonadiabatic holonomic gates. This also significantly improves the development of nonadiabatic holonomic quantum computation. In this paper, we review the above research advances on nonadiabatic holonomic quantum computation, aiming to help readers understand the main developments of nonadiabatic holonomic quantum computation.